
void sqlite3Insert(Parse *pParse,SrcList *pTabList,Select *pSelect,IdList *pColumn,int onError,
                  Upsert *pUpsert)

{
  byte bVar1;
  u8 uVar2;
  ushort uVar3;
  int iVar4;
  sqlite3 *db;
  Select *pSVar5;
  byte *pbVar6;
  ExprList *pEVar7;
  Vdbe *pVVar8;
  Vdbe *p;
  bool bVar9;
  undefined8 uVar10;
  undefined8 uVar11;
  undefined8 uVar12;
  Parse *pParse_00;
  Table *pTab;
  int iVar13;
  Trigger *pTrigger;
  uint uVar14;
  int *piVar15;
  undefined1 *puVar16;
  int iVar17;
  u8 *puVar18;
  Trigger *pTVar19;
  Table *pTVar20;
  Index *pIVar21;
  AutoincInfo *pAVar22;
  Parse *pPVar23;
  HashElem *pHVar24;
  Table *pTVar25;
  Op *pOVar26;
  VTable *pVVar27;
  Table *p_00;
  sqlite3 *extraout_ECX;
  sqlite3 *psVar28;
  uint uVar29;
  int iVar30;
  uint *pHash;
  int nReg;
  Expr *pEVar31;
  Expr *extraout_ECX_00;
  Expr *extraout_ECX_01;
  sqlite3 *extraout_ECX_02;
  sqlite3 *psVar32;
  undefined4 extraout_ECX_03;
  undefined4 extraout_ECX_04;
  sqlite3 *extraout_ECX_05;
  bool bVar33;
  u16 uVar34;
  SrcList *pList;
  byte *pbVar35;
  int extraout_EDX;
  AutoincInfo *pAVar36;
  Table **ppTVar37;
  Column *pCVar38;
  sqlite3 *extraout_EDX_00;
  ushort uVar39;
  undefined1 *puVar40;
  int iVar41;
  Table *pTVar42;
  Expr *pB;
  uint uVar43;
  u8 *puVar44;
  Index *pSrc;
  int unaff_EDI;
  ExprList_item *pEVar45;
  Vdbe **ppVVar46;
  Vdbe *pVVar47;
  Table *pTVar48;
  int in_GS_OFFSET;
  byte bVar49;
  undefined8 uVar50;
  int p3;
  Table *target;
  char *p3_00;
  char *in_stack_fffffe6c;
  char *pcVar51;
  undefined4 uVar52;
  Parse *in_stack_fffffe74;
  Table *in_stack_fffffe78;
  int in_stack_fffffe7c;
  _func_int_Walker_ptr_Expr_ptr *p_Var53;
  AutoincInfo *local_17c;
  sqlite3 *local_174;
  undefined1 *local_170;
  Table *local_16c;
  AutoincInfo *local_168;
  uint local_160;
  Table *local_158;
  SrcList *local_14c;
  Vdbe *local_148;
  Vdbe *local_144;
  uint local_140;
  int local_138;
  ExprList_item *local_134;
  uint local_130;
  Table *local_12c;
  Table *local_118;
  Table *local_110;
  int iDataCur;
  int iIdxCur;
  int tmask;
  SelectDest dest;
  Walker w;
  NameContext sNC;
  Expr sCol [2];
  
  bVar49 = 0;
  uVar50 = __x86_get_pc_thunk_di();
  pList = SUB84(uVar50,4);
  pParse_00 = (Parse *)uVar50;
  iVar4 = *(int *)(in_GS_OFFSET + 0x14);
  db = pParse_00->db;
  iDataCur = 0;
  iIdxCur = 0;
  local_158 = p_00;
  if ((pParse_00->nErr == 0) && (db->mallocFailed == '\0')) {
    dest.iSDParm = 0;
    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)
       ) {
      local_148 = (Vdbe *)p_00->zName;
      p_00->zName = (char *)0x0;
      clearSelect(db,(Select *)p_00,1);
      pcVar51 = (char *)0xf3f64;
      pTab = sqlite3SrcListLookup(pParse_00,pList);
      local_158 = pTab;
      if (pTab != (Table *)0x0) {
        local_158 = (Table *)0x0;
        goto LAB_000f3620;
      }
      goto LAB_000f366b;
    }
    pcVar51 = (char *)0xf360c;
    pTab = sqlite3SrcListLookup(pParse_00,pList);
    if (pTab == (Table *)0x0) {
      sqlite3SrcListDelete(db,pList);
      local_17c = (AutoincInfo *)0x0;
      goto LAB_000f36a8;
    }
    local_148 = (Vdbe *)0x0;
LAB_000f3620:
    if (pTab->pSchema == (Schema *)0x0) {
      iVar13 = -16000000;
      local_134 = (ExprList_item *)0xfff0bdc0;
    }
    else {
      pcVar51 = (char *)0xf3634;
      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);
      iVar13 = (int)local_134 << 4;
    }
    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),
                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);
    if (iVar13 != 0) {
LAB_000f366b:
      local_17c = (AutoincInfo *)0x0;
LAB_000f3673:
      sqlite3SrcListDelete(db,pList);
      if (local_148 != (Vdbe *)0x0) {
LAB_000f3688:
        exprListDeleteNN(db,(ExprList *)local_148);
      }
      goto LAB_000f36a8;
    }
    uVar14 = pTab->tabFlags;
    pTVar42 = (Table *)&tmask;
    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);
    pSVar5 = pTab->pSelect;
    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);
    if (((iVar13 != 0) ||
        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),
        iVar13 != 0)) ||
       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&
        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;
    if (pParse_00->nested == '\0') {
      local_144->field_0x8d = local_144->field_0x8d | 0x20;
    }
    sqlite3BeginWriteOperation
              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),
               (int)local_134);
    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&
       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {
      psVar28 = pParse_00->db;
      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,
                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),
                                                     pParse_00->disableTriggers));
      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;
      local_14c = pTabList;
      if ((pTabList == (SrcList *)0xb) &&
         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&
          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {
        local_14c = (SrcList *)0x2;
      }
      piVar15 = (int *)local_158->nTabRef;
      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||
           (((*(int *)&local_158->keyConf != 0 ||
             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||
            ((local_158->azModuleArg != (char **)0x0 ||
             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||
          ((*(int *)local_158->zName != 1 ||
           ((**(char **)((int)local_158->zName + 4) != -0x58 ||
            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),
            pTVar20 == (Table *)0x0)))))) ||
         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||
          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)
             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||
           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||
            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))
      goto LAB_000f380e;
      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {
        pCVar38 = pTab->aCol;
        pTVar25 = (Table *)(pTVar20->aCol + iVar41);
        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;
        pIVar21 = pTVar25->pIndex;
        if (pCVar38[iVar41].zColl != (char *)0x0) {
          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;
          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);
        }
        if ((pIVar21 != (Index *)0x0) ||
           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))
        goto LAB_000f380e;
        pTVar48 = pTVar25;
        if (0 < iVar41) {
          pEVar31 = pCVar38[iVar41].pDflt;
          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;
          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);
          if (pEVar31 != (Expr *)0x0) {
            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;
            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);
            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);
            if (iVar30 != 0) goto LAB_000f380e;
          }
        }
      }
      local_170 = (undefined1 *)0x0;
      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {
        pTVar48 = (Table *)pTVar20->pIndex;
        if (pIVar21->onError != '\0') {
          local_170 = (undefined1 *)0x1;
        }
        while( true ) {
          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;
          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&
              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&
             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;
          pTVar48 = (Table *)pTVar48->zColAff;
        }
      }
      if ((((pTab->pCheck != (ExprList *)0x0) &&
           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||
          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||
         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;
      if (pTVar20->pSchema == (Schema *)0x0) {
        local_140 = -1000000;
      }
      else {
        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);
      }
      pVVar47 = pParse_00->pVdbe;
      if (pVVar47 == (Vdbe *)0x0) {
        pVVar47 = sqlite3GetVdbe(pParse_00);
      }
      sqlite3CodeVerifySchema(pParse_00,local_140);
      iVar13 = pParse_00->nTab;
      local_12c = (Table *)0x0;
      pParse_00->nTab = iVar13 + 2;
      if ((pTab->tabFlags & 8) != 0) {
        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);
      }
      uVar2 = pParse_00->nTempReg;
      if (uVar2 == '\0') {
        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);
        pParse_00->nMem = (int)local_168;
LAB_000f592a:
        pTVar48 = (Table *)(pParse_00->nMem + 1);
        pParse_00->nMem = (int)pTVar48;
        local_16c = pTVar48;
      }
      else {
        bVar1 = uVar2 - 1;
        pParse_00->nTempReg = bVar1;
        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];
        if (bVar1 == 0) goto LAB_000f592a;
        pParse_00->nTempReg = uVar2 - 2;
        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];
      }
      iVar41 = iVar13 + 1;
      iVar30 = 0x6e;
      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);
      psVar32 = extraout_ECX_02;
      if ((psVar28->mDbFlags & 4) == 0) {
        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||
           ((local_170 != (undefined1 *)0x0 ||
            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {
          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);
          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);
          if (iVar17 < 0) {
            iVar17 = pVVar47->nOp + -1;
          }
          psVar32 = pVVar47->db;
          pOVar26 = (Op *)(unaff_EDI + 0xc9455);
          if (psVar32->mallocFailed == '\0') {
            pOVar26 = pVVar47->aOp + iVar17;
          }
          pOVar26->p2 = pVVar47->nOp;
        }
      }
      else {
        local_170 = (undefined1 *)0x0;
      }
      if ((pTVar20->tabFlags & 0x20) == 0) {
        iVar30 = 0x6d;
        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);
        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);
        if (pTab->iPKey < 0) {
          if (pTab->pIndex == (Index *)0x0) {
            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);
          }
          else {
            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);
          }
        }
        else {
          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);
          pTVar42 = local_16c;
          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);
          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);
          if (iVar30 < 0) {
            iVar30 = pVVar47->nOp + -1;
          }
          pOVar26 = (Op *)(unaff_EDI + 0xc9455);
          if (pVVar47->db->mallocFailed == '\0') {
            pOVar26 = pVVar47->aOp + iVar30;
          }
          pOVar26->p2 = pVVar47->nOp;
          if (0 < (int)local_12c) {
            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);
          }
        }
        uVar34 = 0x29;
        iVar30 = 1;
        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);
        if ((psVar28->mDbFlags & 4) != 0) {
          uVar34 = 0x39;
          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);
        }
        pTVar42 = local_16c;
        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);
        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);
        if (0 < pVVar47->nOp) {
          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;
        }
        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);
        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);
        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);
      }
      else {
        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);
        pTVar42 = (Table *)pTVar20->zName;
        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);
        local_130 = 0;
      }
      pcVar51 = (char *)(unaff_EDI + 0x67fba);
      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {
        pSrc = pTVar20->pIndex;
        while( true ) {
          if (pSrc == (Index *)0x0) {
            sqlite3Insert_cold_1036();
            return;
          }
          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&
             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;
          pSrc = pSrc->pNext;
        }
        uVar52 = extraout_ECX_03;
        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);
        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);
        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);
        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);
        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);
        if (0 < pVVar47->nOp) {
          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;
        }
        p3_00 = pcVar51;
        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);
        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);
        uVar39 = 0;
        pTVar42 = (Table *)&DAT_00000001;
        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);
        if ((psVar28->mDbFlags & 4) != 0) {
          uVar3 = pSrc->nColumn;
          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {
            if ((pSrc->azColl[uVar43] == (char *)0x0) ||
               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),
               iVar30 != 0)) {
              uVar39 = 0;
              goto LAB_000f55d2;
            }
          }
          uVar39 = 0;
          if (uVar43 == uVar3) {
            uVar39 = 0x10;
            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);
          }
        }
LAB_000f55d2:
        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {
          uVar39 = uVar39 | 1;
        }
        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);
        if (0 < pVVar47->nOp) {
          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;
        }
        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);
        if ((int)local_14c < 0) {
          local_14c = (SrcList *)(pVVar47->nOp + -1);
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (pVVar47->db->mallocFailed == '\0') {
          pOVar26 = pVVar47->aOp + (int)local_14c;
        }
        pOVar26->p2 = pVVar47->nOp;
        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);
        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);
      }
      if (local_130 != 0) {
        if ((int)local_130 < 0) {
          local_130 = pVVar47->nOp + -1;
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (pVVar47->db->mallocFailed == '\0') {
          pOVar26 = pVVar47->aOp + local_130;
        }
        pOVar26->p2 = pVVar47->nOp;
      }
      if (local_16c != (Table *)0x0) {
        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);
      }
      if (local_168 != (AutoincInfo *)0x0) {
        sqlite3ReleaseTempReg(pParse_00,(int)local_168);
      }
      uVar12._4_4_ = sNC.pSrcList;
      uVar12._0_4_ = sNC.pParse;
      uVar11._4_4_ = sNC.pSrcList;
      uVar11._0_4_ = sNC.pParse;
      if (local_170 != (undefined1 *)0x0) {
        if (pParse_00->pAinc != (AutoincInfo *)0x0) {
          autoIncrementEnd(pParse_00);
        }
        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);
        if ((int)local_170 < 0) {
          local_170 = (undefined1 *)(pVVar47->nOp + -1);
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (pVVar47->db->mallocFailed == '\0') {
          pOVar26 = pVVar47->aOp + (int)local_170;
        }
        pOVar26->p2 = pVVar47->nOp;
        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);
        goto LAB_000f380e;
      }
      local_17c = (AutoincInfo *)0x0;
      if (((pParse_00->nested == '\0') &&
          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&
         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {
        autoIncrementEnd(pParse_00);
        local_17c = (AutoincInfo *)0x0;
      }
      goto LAB_000f3673;
    }
LAB_000f380e:
    local_118 = (Table *)0x0;
    if ((pTab->tabFlags & 8) != 0) {
      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);
    }
    local_110 = (Table *)pParse_00->nMem;
    iVar13 = (int)&local_110->zName + pTab->nCol + 1;
    pTVar20 = (Table *)((int)&local_110->zName + 1);
    pParse_00->nMem = iVar13;
    local_12c = pTVar20;
    if (pTab->nModuleArg != 0) {
      local_12c = (Table *)((int)&local_110->zName + 2);
      pParse_00->nMem = iVar13 + 1;
      local_110 = pTVar20;
    }
    uVar14 = uVar14 & 0x20;
    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;
    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {
LAB_000f4012:
      local_140 = 0xffffffff;
    }
    else {
      iVar13 = 0;
      do {
        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;
        iVar13 = iVar13 + 1;
      } while (iVar13 < (int)pParse->zErrMsg);
      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;
      local_14c = (SrcList *)0x0;
      local_140 = 0xffffffff;
      local_170 = (undefined1 *)(int)pTab->nCol;
      do {
        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;
        local_174 = (sqlite3 *)*piVar15;
        if (0 < (int)local_170) {
          uVar43 = 0;
          iVar13 = unaff_EDI + 0x76279;
          do {
            pbVar6 = (byte *)pTab->aCol[uVar43].zName;
            pbVar35 = (byte *)local_174;
            bVar1 = *(byte *)local_174;
            if (*(char *)(iVar13 + (uint)*pbVar6) ==
                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {
              do {
                if (bVar1 == 0) {
                  piVar15[1] = uVar43;
                  if ((SrcList *)uVar43 != local_14c) {
                    local_130._0_1_ = 0;
                  }
                  local_130 = (uint)(byte)local_130;
                  if ((int)pTab->iPKey == uVar43) {
                    local_140 = (uint)local_14c;
                  }
                  local_170 = (undefined1 *)(int)pTab->nCol;
                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;
                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];
                  goto LAB_000f399e;
                }
                pbVar6 = pbVar6 + 1;
                pbVar35 = pbVar35 + 1;
                bVar1 = *pbVar35;
              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));
            }
            uVar43 = uVar43 + 1;
          } while ((undefined1 *)uVar43 != local_170);
        }
LAB_000f399e:
        iVar13 = sqlite3IsRowid((char *)local_174);
        if ((iVar13 == 0) || (uVar14 != 0)) {
          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);
          pParse_00->checkSchema = '\x01';
          local_17c = (AutoincInfo *)0x0;
          goto LAB_000f3673;
        }
        local_130 = 0;
        local_140 = (uint)local_14c;
LAB_000f39c8:
        local_14c = (SrcList *)((int)local_14c + 1);
      } while ((int)local_14c < (int)pParse->zErrMsg);
    }
    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);
    if (local_158 == (Table *)0x0) {
      uVar43 = 0;
      do {
        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;
        uVar43 = uVar43 + 4;
      } while (uVar43 < 0x1c);
      bVar9 = false;
      sNC.pParse = pParse_00;
      if (local_148 == (Vdbe *)0x0) {
        local_170 = (undefined1 *)0x0;
        uVar43 = 0;
        local_174 = (sqlite3 *)0x0;
        iVar13 = -1;
      }
      else {
        iVar13 = 0;
        local_174 = local_148->db;
        ppVVar46 = &local_148->pPrev;
        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);
        if (0 < (int)local_174) {
          do {
            pVVar47 = *ppVVar46;
            if (pVVar47 != (Vdbe *)0x0) {
              uVar34 = sNC.ncFlags;
              w.u.pNC = &sNC;
              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;
              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;
              w.pParse = sNC.pParse;
              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;
              (sNC.pParse)->nHeight = iVar30;
              iVar41 = (sNC.pParse)->db->aLimit[3];
              w.xExprCallback = p_Var53;
              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);
              if (iVar41 < iVar30) {
                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);
              }
              else {
                walkExpr(&w,(Expr *)pVVar47);
                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;
                if ((sNC._24_4_ & 0x10) != 0) {
                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);
                }
                if ((short)sNC.ncFlags < 0) {
                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);
                }
                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;
                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;
              }
              sqlite3SrcListDelete(db,pList);
              exprListDeleteNN(db,(ExprList *)local_148);
              local_17c = (AutoincInfo *)0x0;
              if (pSelect != (Select *)0x0) goto LAB_000f36b0;
              if (pParse != (Parse *)0x0) {
                sqlite3IdListDelete(db,(IdList *)pParse);
              }
              goto LAB_000f374a;
            }
LAB_000f41e7:
            iVar13 = iVar13 + 1;
            ppVVar46 = ppVVar46 + 5;
          } while (iVar13 < (int)local_148->db);
          local_170 = (undefined1 *)0x0;
          iVar13 = -1;
          local_16c._0_1_ = pParse == (Parse *)0x0;
          uVar43 = (uint)local_16c._0_1_;
          goto LAB_000f3c52;
        }
        local_170 = (undefined1 *)0x0;
        iVar13 = -1;
        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);
      }
    }
    else {
      iVar41 = pParse_00->nMem + 1;
      pParse_00->nMem = iVar41;
      puVar40 = (undefined1 *)local_144->nOp;
      pTVar42 = (Table *)(puVar40 + 1);
      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);
      dest.eDest = '\r';
      dest.zAffSdst = (char *)0x0;
      dest.iSdst = (int)(undefined1 *)0x0;
      if ((byte)local_130 != '\0') {
        dest.iSdst = (int)puVar16;
      }
      dest.nSdst = (int)pTab->nCol;
      dest.iSDParm = iVar41;
      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);
      iVar30 = dest.iSdst;
      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))
      goto LAB_000f366b;
      local_170 = (undefined1 *)dest.iSdst;
      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);
      local_144->pParse->nTempReg = '\0';
      local_144->pParse->nRangeReg = 0;
      psVar32 = (sqlite3 *)local_144->nOp;
      psVar28 = local_144->db;
      if ((int)puVar40 < 0) {
        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);
      }
      pOVar26 = (Op *)(unaff_EDI + 0xc9455);
      if (psVar28->mallocFailed == '\0') {
        psVar28 = (sqlite3 *)((int)puVar40 * 3);
        pOVar26 = local_144->aOp + (int)puVar40;
      }
      pOVar26->p2 = (int)psVar32;
      local_174 = *(sqlite3 **)local_158->zName;
      if (pTrigger == (Trigger *)0x0) {
        pVVar47 = pParse_00->pVdbe;
        if (pVVar47 == (Vdbe *)0x0) {
          pVVar47 = sqlite3GetVdbe(pParse_00);
          psVar28 = extraout_ECX_05;
          psVar32 = extraout_EDX_00;
        }
        pVVar27 = (VTable *)0x0;
        if (pTab->nModuleArg != 0) {
          psVar32 = pParse_00->db;
          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));
              pVVar27 = pVVar27->pNext) {
          }
        }
        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);
        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;
        local_16c._0_1_ = SUB41(uVar29,0);
        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;
        bVar9 = false;
        if (1 < pVVar47->nOp) {
          iVar41 = 1;
          do {
            pOVar26 = (Op *)(unaff_EDI + 0xc9455);
            if (pVVar47->db->mallocFailed == '\0') {
              pOVar26 = pVVar47->aOp + iVar41;
            }
            if (pOVar26->opcode == 'm') {
              if (local_134 == (ExprList_item *)pOVar26->p3) {
                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;
                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {
                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;
                }
              }
            }
            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))
            goto LAB_000f3b16;
            iVar41 = iVar41 + 1;
          } while (pVVar47->nOp != iVar41);
        }
      }
      else {
LAB_000f3b16:
        iVar13 = pParse_00->nTab;
        pParse_00->nTab = iVar13 + 1;
        uVar2 = pParse_00->nTempReg;
        if (uVar2 == '\0') {
          iVar41 = pParse_00->nMem + 1;
          iVar17 = iVar41;
LAB_000f4ecb:
          pTVar48 = (Table *)(iVar17 + 1);
          pParse_00->nMem = (int)pTVar48;
        }
        else {
          bVar1 = uVar2 - 1;
          pParse_00->nTempReg = bVar1;
          iVar41 = pParse_00->aTempReg[bVar1];
          if (bVar1 == 0) {
            iVar17 = pParse_00->nMem;
            goto LAB_000f4ecb;
          }
          pParse_00->nTempReg = uVar2 - 2;
          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];
        }
        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);
        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);
        p3 = iVar41;
        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);
        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);
        pTVar42 = pTVar48;
        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);
        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);
        iVar30 = local_144->nOp;
        psVar28 = local_144->db;
        if (iVar17 < 0) {
          iVar17 = iVar30 + -1;
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (psVar28->mallocFailed == '\0') {
          psVar28 = (sqlite3 *)(iVar17 * 3);
          pOVar26 = local_144->aOp + iVar17;
        }
        pOVar26->p2 = iVar30;
        if (iVar41 != 0) {
          sqlite3ReleaseTempReg(pParse_00,iVar41);
          psVar28 = extraout_ECX;
          iVar30 = extraout_EDX;
        }
        bVar9 = true;
        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);
        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;
        local_16c._0_1_ = SUB41(uVar29,0);
        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;
        if (pTVar48 != (Table *)0x0) {
          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);
        }
      }
LAB_000f3c52:
      if (local_16c._0_1_ != false) {
        local_140 = (uint)pTab->iPKey;
      }
    }
    iVar41 = (int)pTab->nCol;
    if (iVar41 < 1) {
      iVar30 = 0;
    }
    else {
      iVar30 = 0;
      puVar18 = &pTab->aCol->colFlags;
      puVar44 = puVar18 + iVar41 * 0x10;
      do {
        bVar1 = *puVar18;
        puVar18 = puVar18 + 0x10;
        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);
      } while (puVar44 != puVar18);
    }
    if ((char)uVar43 == '\0') {
      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;
      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);
      local_17c = (AutoincInfo *)0x0;
      goto LAB_000f3673;
    }
    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {
      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),
                      local_174);
      local_17c = (AutoincInfo *)0x0;
      goto LAB_000f3673;
    }
LAB_000f3caf:
    local_16c = (Table *)0x0;
    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&
       (pParse_00->pTriggerTab == (Table *)0x0)) {
      local_16c = (Table *)(pParse_00->nMem + 1);
      pParse_00->nMem = (int)local_16c;
      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);
    }
    local_168 = (AutoincInfo *)0x0;
    if (pSVar5 == (Select *)0x0) {
      iVar41 = 0;
      if (pTab->nModuleArg == 0) {
        iVar41 = sqlite3OpenTableAndIndices
                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);
      }
      if ((db->mallocFailed != '\0') ||
         (local_168 = (AutoincInfo *)
                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),
         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;
      pIVar21 = pTab->pIndex;
      if (0 < iVar41) {
        iVar30 = pParse_00->nMem;
        pAVar36 = local_168;
        do {
          pAVar22 = (AutoincInfo *)(iVar30 + 1);
          ppTVar37 = &pAVar36->pTab;
          pParse_00->nMem = (int)pAVar22;
          pAVar36->pNext = pAVar22;
          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;
          pParse_00->nMem = iVar30;
          pIVar21 = pIVar21->pNext;
          pAVar36 = (AutoincInfo *)ppTVar37;
        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);
      }
    }
    uVar10._4_4_ = sNC.pSrcList;
    uVar10._0_4_ = sNC.pParse;
    if (pSelect == (Select *)0x0) {
LAB_000f3d98:
      if (bVar9) {
        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);
        local_160 = local_144->nOp;
      }
      else if (local_158 == (Table *)0x0) {
        local_160 = 0;
        iVar41 = 0;
      }
      else {
        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);
        local_160 = iVar41;
      }
      pTVar48 = (Table *)(pParse_00->nLabel + -1);
      pParse_00->nLabel = (int)pTVar48;
      if (((byte)tmask & 1) != 0) {
        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);
        if ((int)local_140 < 0) {
          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);
        }
        else {
          if (bVar9) {
            pTVar42 = pTVar25;
            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);
          }
          else {
            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);
          }
          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);
          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);
          if (iVar30 < 0) {
            iVar30 = local_144->nOp + -1;
          }
          pOVar26 = (Op *)(unaff_EDI + 0xc9455);
          if (local_144->db->mallocFailed == '\0') {
            pOVar26 = local_144->aOp + iVar30;
          }
          pOVar26->p2 = local_144->nOp;
          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);
        }
        iVar30 = (int)pTab->nCol;
        if (0 < pTab->nCol) {
          pcVar51 = (char *)0x0;
          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);
          pVVar47 = (Vdbe *)0x0;
          do {
            if (pParse == (Parse *)0x0) {
              if (bVar33) goto LAB_000f4c2c;
LAB_000f4c96:
              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));
              if (bVar9) {
                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);
                pTVar42 = target;
              }
              else {
                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];
                p = pParse_00->pVdbe;
                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);
                iVar30 = pParse_00->nMem + 1;
                pParse_00->nMem = iVar30;
                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);
                uVar2 = *(u8 *)&pVVar8->db;
                pVVar8->nCursor = iVar30;
                *(u8 *)&pVVar8->db = 0xa4;
                *(u8 *)&pVVar8->rc = uVar2;
                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);
              }
            }
            else {
              if ((int)pParse->zErrMsg < 1) {
                pcVar51 = (char *)0x0;
              }
              else {
                pcVar51 = (char *)0x0;
                pVVar8 = pParse->db->pVdbe;
                while (pVVar47 != pVVar8) {
                  pcVar51 = pcVar51 + 1;
                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;
                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];
                }
                if (!bVar33) goto LAB_000f4c96;
              }
LAB_000f4c2c:
              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,
                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));
            }
            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);
            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);
            iVar30 = (int)pTab->nCol;
          } while ((int)pVVar47 < iVar30);
        }
        if (pSVar5 == (Select *)0x0) {
          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));
          iVar30 = (int)pTab->nCol;
        }
        pTVar42 = pTVar48;
        sqlite3CodeRowTrigger
                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,
                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);
        iVar30 = pTab->nCol + 1;
        if (iVar30 == 1) {
          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);
        }
        else if (pParse_00->nRangeReg < iVar30) {
          pParse_00->nRangeReg = iVar30;
          pParse_00->iRangeReg = (int)pTVar25;
        }
      }
      if (pSVar5 == (Select *)0x0) {
        if (pTab->nModuleArg != 0) {
          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);
        }
        if ((int)local_140 < 0) {
          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);
          if (pVVar47 == (Vdbe *)0x0) {
LAB_000f4a81:
            pTVar42 = local_118;
            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);
            local_138 = 1;
          }
          else {
            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);
            local_138 = 0;
          }
        }
        else {
          if (bVar9) {
            pTVar42 = local_12c;
            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);
          }
          else if (local_158 == (Table *)0x0) {
            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&
               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;
            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);
          }
          else {
            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,
                              (int)pTVar42);
          }
          if (pTab->nModuleArg == 0) {
            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);
            pTVar42 = local_118;
            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);
            if (iVar30 < 0) {
              iVar30 = local_144->nOp + -1;
            }
            pOVar26 = (Op *)(unaff_EDI + 0xc9455);
            if (local_144->db->mallocFailed == '\0') {
              pOVar26 = local_144->aOp + iVar30;
            }
            pOVar26->p2 = local_144->nOp;
          }
          else {
            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);
          }
          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);
          local_138 = 0;
          pVVar47 = local_144;
        }
        if (0 < (int)local_118) {
          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);
        }
        if (0 < pTab->nCol) {
          local_134 = (ExprList_item *)0x0;
          pVVar47 = (Vdbe *)0x0;
          do {
            pTVar25 = (Table *)(puVar16 + (int)pVVar47);
            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {
              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);
            }
            else {
              if (pParse == (Parse *)0x0) {
                pCVar38 = pTab->aCol + (int)pVVar47;
                if ((pCVar38->colFlags & 2) == 0) {
                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);
                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;
                }
                else {
                  local_134 = (ExprList_item *)((int)local_134 + 1);
                }
              }
              else {
                if (0 < (int)pParse->zErrMsg) {
                  pcVar51 = (char *)0x0;
                  pVVar8 = pParse->db->pVdbe;
                  while (pVVar8 != pVVar47) {
                    pcVar51 = pcVar51 + 1;
                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;
                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];
                  }
                  if (local_174 != (sqlite3 *)0x0) {
LAB_000f47c2:
                    if (bVar9) {
                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);
                      pTVar42 = pTVar25;
                    }
                    else if (local_158 == (Table *)0x0) {
                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],
                                      (int)pTVar25);
                    }
                    else if (local_170 != puVar16) {
                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,
                                        (int)pTVar42);
                    }
                    goto LAB_000f4756;
                  }
                }
LAB_000f47ad:
                pCVar38 = pTab->aCol + (int)pVVar47;
              }
              pEVar31 = pCVar38->pDflt;
              if (pParse_00->okConstFactor == '\0') {
LAB_000f474b:
                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);
              }
              else {
                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);
                sNC.ncFlags = 0;
                sNC._26_2_ = 0;
                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);
                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);
                if (pEVar31 != (Expr *)0x0) {
                  walkExpr((Walker *)&sNC,pEVar31);
                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;
                }
                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);
              }
            }
LAB_000f4756:
            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);
          } while ((int)pVVar47 < (int)pTab->nCol);
        }
        if (pTab->nModuleArg == 0) {
          sqlite3GenerateConstraintChecks
                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,
                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,
                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);
          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);
          if (sNC.pParse == (Parse *)0x0) {
            pTVar42 = (Table *)&DAT_00000001;
          }
          else {
            pTVar42 = (Table *)0x0;
            if ((pTrigger == (Trigger *)0x0) &&
               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {
              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);
              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);
            }
          }
          sqlite3CompleteInsertion
                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,
                     (int)pTVar42);
        }
        else {
          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));
              pVVar27 = pVVar27->pNext) {
          }
          sqlite3VtabMakeWritable(pParse_00,pTab);
          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);
          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);
          uVar34 = (u16)pTabList;
          if (pTabList == (SrcList *)0xb) {
            uVar34 = 2;
          }
          if (0 < local_144->nOp) {
            local_144->aOp[local_144->nOp + -1].p5 = uVar34;
          }
          pPVar23 = pParse_00->pToplevel;
          if (pParse_00->pToplevel == (Parse *)0x0) {
            pPVar23 = pParse_00;
          }
          pPVar23->mayAbort = '\x01';
          pTVar42 = pTVar20;
        }
      }
      if (local_16c != (Table *)0x0) {
        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);
      }
      if (pTrigger != (Trigger *)0x0) {
        pTVar42 = pTVar48;
        sqlite3CodeRowTrigger
                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,
                   (int)pTabList,(int)pTVar48);
      }
      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);
      if (bVar9) {
        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);
        if (iVar41 < 0) {
          iVar41 = local_144->nOp + -1;
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (local_144->db->mallocFailed == '\0') {
          pOVar26 = local_144->aOp + iVar41;
        }
        pOVar26->p2 = local_144->nOp;
        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);
      }
      else if (local_158 != (Table *)0x0) {
        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);
        if (iVar41 < 0) {
          iVar41 = local_144->nOp + -1;
        }
        pOVar26 = (Op *)(unaff_EDI + 0xc9455);
        if (local_144->db->mallocFailed == '\0') {
          pOVar26 = local_144->aOp + iVar41;
        }
        pOVar26->p2 = local_144->nOp;
      }
      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&
         (pParse_00->pAinc != (AutoincInfo *)0x0)) {
        autoIncrementEnd(pParse_00);
      }
      local_17c = local_168;
      if (local_16c != (Table *)0x0) {
        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);
        sqlite3VdbeSetNumCols(local_144,1);
        if (local_144->db->mallocFailed == '\0') {
          sqlite3VdbeSetColName
                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);
        }
      }
      goto LAB_000f3673;
    }
    if (pTab->nModuleArg == 0) {
      pList->a[0].iCursor = iDataCur;
      pSelect->selId = (u32)pList;
      pSelect->addrOpenEphm[1] = iDataCur;
      pSelect->addrOpenEphm[0] = (int)puVar16;
      pEVar7 = pSelect->pEList;
      pSelect->pSrc = (SrcList *)iIdxCur;
      sNC._0_8_ = uVar10;
      if (pEVar7 != (ExprList *)0x0) {
        uVar43 = 0;
        do {
          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;
          uVar43 = uVar43 + 4;
        } while (uVar43 < 0x18);
        sNC._0_8_ = uVar50;
        if (0 < pEVar7->nExpr) {
          pEVar45 = pEVar7->a;
          iVar41 = 0;
          do {
            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);
            if (iVar30 != 0) goto LAB_000f3d98;
            iVar41 = iVar41 + 1;
            pEVar45 = pEVar45 + 1;
          } while (iVar41 < pEVar7->nExpr);
        }
        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);
        if (iVar41 == 0) {
          pTVar48 = pList->a[0].pTab;
          pEVar7 = pSelect->pEList;
          iVar41 = pList->a[0].iCursor;
          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||
             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {
            pEVar31 = sCol;
            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {
              pEVar31->op = '\0';
              pEVar31->affinity = '\0';
              *(undefined2 *)&pEVar31->field_0x2 = 0;
              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);
            }
            sCol[1].op = 0x9e;
            sCol[0].op = 'f';
            pEVar31 = (Expr *)0x0;
            sCol[1].iTable = iVar41;
            sCol[0].pLeft = sCol + 1;
            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {
              if ((pIVar21->onError != '\0') &&
                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {
                pEVar31 = pIVar21->pPartIdxWhere;
                if (pEVar31 == (Expr *)0x0) {
LAB_000f502a:
                  if (uVar43 == 0) {
LAB_000f50dd:
                    pSelect->iOffset = (int)pIVar21;
                    goto LAB_000f3d98;
                  }
                  uVar29 = 0;
                  while( true ) {
                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);
                    if (pIVar21->aiColumn[uVar29] == -2) {
                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;
                      pB = pEVar31;
                      if (pEVar31->op != 'f') {
                        pB = sCol;
                        sCol[0].pLeft = pEVar31;
                      }
                    }
                    else {
                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];
                      pB = sCol;
                      sCol[0].pLeft = sCol + 1;
                    }
                    local_160 = 0;
                    local_134 = pEVar7->a;
                    while( true ) {
                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);
                      pEVar31 = extraout_ECX_01;
                      if (iVar30 < 2) break;
                      local_160 = local_160 + 1;
                      local_134 = local_134 + 1;
                      if (uVar43 == local_160) goto LAB_000f4fe0;
                    }
                    if ((int)uVar43 <= (int)local_160) break;
                    uVar29 = uVar29 + 1;
                    if (uVar43 == uVar29) goto LAB_000f50dd;
                  }
                }
                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {
                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);
                  pEVar31 = extraout_ECX_00;
                  if (iVar30 == 0) {
                    uVar43 = (uint)pIVar21->nKeyCol;
                    goto LAB_000f502a;
                  }
                }
              }
LAB_000f4fe0:
            }
            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);
            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);
          }
        }
      }
      goto LAB_000f3d98;
    }
    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);
    sqlite3SrcListDelete(db,pList);
    local_17c = local_168;
    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;
  }
  else {
    sqlite3SrcListDelete(db,pList);
    local_17c = (AutoincInfo *)0x0;
LAB_000f36a8:
    if (pSelect == (Select *)0x0) goto LAB_000f370c;
  }
LAB_000f36b0:
  if (pSelect->pEList != (ExprList *)0x0) {
    exprListDeleteNN(db,pSelect->pEList);
  }
  if (*(Expr **)&pSelect->op != (Expr *)0x0) {
    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);
  }
  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {
    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);
  }
  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {
    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);
  }
  sqlite3DbFreeNN(db,pSelect);
LAB_000f370c:
  if (local_158 != (Table *)0x0) {
    clearSelect(db,(Select *)local_158,1);
  }
  if (pParse != (Parse *)0x0) {
    sqlite3IdListDelete(db,(IdList *)pParse);
  }
  if (local_17c != (AutoincInfo *)0x0) {
    sqlite3DbFreeNN(db,local_17c);
  }
LAB_000f374a:
  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



void FUN_000f3560(int *param_1,uint param_2,int *param_3)

{
  byte bVar1;
  char cVar2;
  undefined1 uVar3;
  short sVar4;
  ushort uVar5;
  uint uVar6;
  undefined1 *puVar7;
  uint *puVar8;
  undefined4 uVar9;
  bool bVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  undefined4 *puVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  byte *pbVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int *extraout_ECX;
  int extraout_ECX_00;
  uint uVar27;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  undefined4 extraout_ECX_04;
  undefined4 extraout_ECX_05;
  int extraout_ECX_06;
  undefined2 uVar28;
  byte *pbVar29;
  int extraout_EDX;
  int *piVar30;
  int *piVar31;
  char *pcVar32;
  ushort uVar33;
  int *piVar34;
  uint uVar35;
  undefined4 *puVar36;
  int unaff_EDI;
  int *piVar37;
  undefined4 *puVar38;
  int in_GS_OFFSET;
  bool bVar39;
  byte bVar40;
  undefined8 uVar41;
  undefined8 uVar42;
  int *local_17c;
  byte *local_174;
  uint local_170;
  uint local_16c;
  int *local_168;
  uint local_160;
  int *local_158;
  uint local_14c;
  int *local_148;
  int *local_144;
  uint local_140;
  undefined4 local_138;
  int local_134;
  uint local_130;
  int local_12c;
  int local_118;
  int local_110;
  int local_f0;
  int local_ec;
  byte local_e8 [4];
  undefined1 local_e4;
  int local_e0;
  int local_dc;
  int local_d8;
  undefined4 local_d4;
  int *local_cc;
  int local_c8;
  int local_c4;
  undefined4 local_c0;
  undefined8 *local_b4;
  undefined8 local_b0;
  int local_a8 [3];
  int local_9c;
  uint local_98;
  undefined1 local_90 [8];
  undefined4 local_88;
  int *local_84;
  undefined1 local_58 [28];
  undefined4 local_3c;
  int local_38;
  int local_20;
  
  bVar40 = 0;
  uVar41 = FUN_0003a401();
  iVar23 = (int)((ulonglong)uVar41 >> 0x20);
  piVar11 = (int *)uVar41;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar26 = *piVar11;
  local_f0 = 0;
  local_ec = 0;
  local_158 = extraout_ECX;
  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {
    local_e0 = 0;
    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&
       (extraout_ECX[0xd] == 0)) {
      local_148 = (int *)*extraout_ECX;
      *extraout_ECX = 0;
      FUN_00063a90();
      piVar12 = (int *)FUN_000ed210();
      local_158 = piVar12;
      if (piVar12 != (int *)0x0) {
        local_158 = (int *)0x0;
        goto LAB_000f3620;
      }
      goto LAB_000f366b;
    }
    piVar12 = (int *)FUN_000ed210();
    if (piVar12 == (int *)0x0) {
      FUN_000638a0();
      local_17c = (int *)0x0;
      goto LAB_000f36a8;
    }
    local_148 = (int *)0x0;
LAB_000f3620:
    if (piVar12[0x12] == 0) {
      iVar13 = -16000000;
      local_134 = -1000000;
    }
    else {
      local_134 = FUN_00046080();
      iVar13 = local_134 << 4;
    }
    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));
    if (iVar13 != 0) {
LAB_000f366b:
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
LAB_000f3673:
      FUN_000638a0();
      if (local_148 != (int *)0x0) {
LAB_000f3688:
        FUN_00063e30();
      }
      goto LAB_000f36a8;
    }
    uVar6 = piVar12[9];
    iVar14 = FUN_00049a60(0,local_e8);
    iVar13 = piVar12[3];
    iVar15 = FUN_000d9b60();
    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||
       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&
        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;
    if (*(char *)((int)piVar11 + 0x12) == '\0') {
      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;
    }
    FUN_000bcbf0();
    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&
       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {
      iVar15 = *piVar11;
      iVar16 = FUN_000460a0();
      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;
      local_14c = param_2;
      if ((param_2 == 0xb) &&
         ((local_14c = 2, -1 < (short)piVar12[10] &&
          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {
        local_14c = 2;
      }
      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)
            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||
                  ((local_158[0xf] != 0 ||
                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||
          ((*(int *)*local_158 != 1 ||
           ((*(char *)((int *)*local_158)[1] != -0x58 ||
            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||
         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||
          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)
             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||
           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||
            (uVar35 = (uint)*(ushort *)(puVar17 + 10),
            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;
      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {
        iVar18 = piVar12[1] + iVar16 * 0x10;
        uVar27 = iVar16 * 0x10 + puVar17[1];
        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;
        iVar22 = *(int *)(uVar27 + 8);
        if (*(int *)(iVar18 + 8) != 0) {
          if (iVar22 == 0) goto LAB_000f380e;
          iVar22 = FUN_000446c0();
        }
        if ((iVar22 != 0) ||
           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))
        goto LAB_000f380e;
        uVar35 = uVar27;
        if (0 < iVar16) {
          iVar18 = *(int *)(iVar18 + 4);
          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||
             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&
              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),
              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;
        }
      }
      local_170 = 0;
      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {
        uVar35 = puVar17[2];
        if (*(char *)(iVar16 + 0x36) != '\0') {
          local_170 = 1;
        }
        while( true ) {
          if (uVar35 == 0) goto LAB_000f380e;
          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&
              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&
             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;
          uVar35 = *(uint *)(uVar35 + 0x14);
        }
      }
      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||
          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||
         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;
      if (puVar17[0x12] == 0) {
        local_140 = 0xfff0bdc0;
      }
      else {
        local_140 = FUN_00046080();
      }
      piVar34 = (int *)piVar11[2];
      if (piVar34 == (int *)0x0) {
        piVar34 = (int *)FUN_00073350();
      }
      FUN_000bca90();
      local_12c = 0;
      piVar11[10] = piVar11[10] + 2;
      if ((*(byte *)(piVar12 + 9) & 8) != 0) {
        local_12c = FUN_00055fd0();
      }
      cVar2 = *(char *)((int)piVar11 + 0x13);
      if (cVar2 == '\0') {
        local_168 = (int *)(piVar11[0xb] + 1);
        piVar11[0xb] = (int)local_168;
LAB_000f592a:
        uVar35 = piVar11[0xb] + 1;
        piVar11[0xb] = uVar35;
        local_16c = uVar35;
      }
      else {
        bVar1 = cVar2 - 1;
        *(byte *)((int)piVar11 + 0x13) = bVar1;
        local_168 = (int *)piVar11[bVar1 + 0x24];
        if (bVar1 == 0) goto LAB_000f592a;
        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;
        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];
      }
      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);
      iVar16 = extraout_ECX_03;
      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {
        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||
           ((local_170 != 0 || (1 < local_14c - 1)))) {
          uVar35 = FUN_00073150(0);
          local_170 = FUN_00073150(0);
          if ((int)uVar35 < 0) {
            uVar35 = piVar34[0x1a] - 1;
          }
          iVar16 = *piVar34;
          iVar18 = unaff_EDI + 0xc9455;
          if (*(char *)(iVar16 + 0x4d) == '\0') {
            uVar35 = uVar35 * 0x18;
            iVar18 = piVar34[0x19] + uVar35;
          }
          *(int *)(iVar18 + 8) = piVar34[0x1a];
        }
      }
      else {
        local_170 = 0;
      }
      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {
        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);
        local_130 = FUN_00073150(0);
        if ((short)piVar12[10] < 0) {
          if (piVar12[2] == 0) {
            iVar22 = FUN_00073150(local_16c);
            iVar18 = iVar22;
          }
          else {
            iVar22 = FUN_00073150(local_16c);
            iVar18 = iVar22;
          }
        }
        else {
          iVar18 = FUN_00073150(local_16c);
          iVar16 = FUN_00072f80(0,local_16c);
          FUN_00086c60();
          if (iVar16 < 0) {
            iVar16 = piVar34[0x1a] + -1;
          }
          iVar22 = unaff_EDI + 0xc9455;
          if (*(char *)(*piVar34 + 0x4d) == '\0') {
            iVar22 = piVar34[0x19] + iVar16 * 0x18;
          }
          *(int *)(iVar22 + 8) = piVar34[0x1a];
          if (0 < local_12c) {
            iVar22 = FUN_00073150(local_16c);
          }
        }
        uVar28 = 0x29;
        FUN_00072f80(local_168,1,iVar22,iVar22);
        iVar16 = iVar15;
        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {
          uVar28 = 0x39;
          iVar16 = FUN_00073150(0);
        }
        FUN_00072f80(local_168,local_16c,iVar16,iVar16);
        FUN_00062750(0xfffffffa);
        if (0 < piVar34[0x1a]) {
          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;
        }
        FUN_00073150(iVar18);
        FUN_00073150(0);
        FUN_00073150(0);
      }
      else {
        FUN_00072d00(1,*piVar12,uVar35,uVar35);
        FUN_00072d00(0,*puVar17);
        local_130 = 0;
      }
      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;
          puVar38 = (undefined4 *)puVar38[5]) {
        puVar36 = (undefined4 *)puVar17[2];
        while( true ) {
          if (puVar36 == (undefined4 *)0x0) {
            FUN_000157bf();
            return;
          }
          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&
              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&
             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;
          puVar36 = (undefined4 *)puVar36[5];
        }
        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);
        FUN_00090ee0();
        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);
        FUN_00072f80(puVar38[0xb],local_134);
        FUN_00090ee0();
        if (0 < piVar34[0x1a]) {
          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;
        }
        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);
        local_14c = FUN_00073150(0);
        uVar33 = 0;
        FUN_00072f80(local_168,1);
        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {
          uVar5 = *(ushort *)(puVar36 + 0xd);
          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {
            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))
            {
              uVar33 = 0;
              goto LAB_000f55d2;
            }
          }
          uVar33 = 0;
          if (uVar35 == uVar5) {
            uVar33 = 0x10;
            FUN_00073150(0);
          }
        }
LAB_000f55d2:
        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {
          uVar33 = uVar33 | 1;
        }
        FUN_00073150(local_168);
        if (0 < piVar34[0x1a]) {
          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;
        }
        FUN_00073150(local_14c + 1);
        if ((int)local_14c < 0) {
          local_14c = piVar34[0x1a] + -1;
        }
        iVar16 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar16 = local_14c * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar16 + 8) = piVar34[0x1a];
        FUN_00073150(0);
        FUN_00073150(0);
      }
      if (local_130 != 0) {
        if ((int)local_130 < 0) {
          local_130 = piVar34[0x1a] + -1;
        }
        iVar15 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar15 = local_130 * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar15 + 8) = piVar34[0x1a];
      }
      if (local_16c != 0) {
        FUN_00045e10();
      }
      if (local_168 != (int *)0x0) {
        FUN_00045e10();
      }
      if (local_170 != 0) {
        if (piVar11[0x1c] != 0) {
          FUN_000916b0();
        }
        FUN_00073150(0);
        if ((int)local_170 < 0) {
          local_170 = piVar34[0x1a] + -1;
        }
        iVar15 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar15 = local_170 * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar15 + 8) = piVar34[0x1a];
        FUN_00073150(0);
        goto LAB_000f380e;
      }
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&
          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&
         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),
         local_17c != (int *)0x0)) {
        FUN_000916b0();
        local_17c = (int *)0x0;
      }
      goto LAB_000f3673;
    }
LAB_000f380e:
    local_118 = 0;
    if ((*(byte *)(piVar12 + 9) & 8) != 0) {
      local_118 = FUN_00055fd0();
    }
    local_110 = piVar11[0xb];
    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);
    iVar15 = local_110 + 1;
    piVar11[0xb] = iVar16;
    local_12c = iVar15;
    if (piVar12[0xe] != 0) {
      local_12c = local_110 + 2;
      piVar11[0xb] = iVar16 + 1;
      local_110 = iVar15;
    }
    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;
    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {
LAB_000f4012:
      local_140 = 0xffffffff;
    }
    else {
      iVar16 = 0;
      do {
        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;
        iVar16 = iVar16 + 1;
      } while (iVar16 < param_1[1]);
      if (param_1[1] < 1) goto LAB_000f4012;
      local_14c = 0;
      local_140 = 0xffffffff;
      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);
      do {
        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);
        local_174 = (byte *)*puVar17;
        if (0 < (int)local_170) {
          uVar35 = 0;
          do {
            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);
            pbVar29 = local_174;
            bVar1 = *local_174;
            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==
                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {
              do {
                if (bVar1 == 0) {
                  puVar17[1] = uVar35;
                  if (uVar35 != local_14c) {
                    local_130._0_1_ = 0;
                  }
                  local_130 = (uint)(byte)local_130;
                  if ((int)(short)piVar12[10] == uVar35) {
                    local_140 = local_14c;
                  }
                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);
                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;
                  local_174 = *(byte **)(*param_1 + local_14c * 8);
                  goto LAB_000f399e;
                }
                pbVar21 = pbVar21 + 1;
                pbVar29 = pbVar29 + 1;
                bVar1 = *pbVar29;
              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==
                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);
            }
            uVar35 = uVar35 + 1;
          } while (uVar35 != local_170);
        }
LAB_000f399e:
        iVar16 = FUN_00045bc0();
        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {
          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);
          *(undefined1 *)((int)piVar11 + 0x11) = 1;
          local_17c = (int *)0x0;
          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
          goto LAB_000f3673;
        }
        local_130 = 0;
        local_140 = local_14c;
LAB_000f39c8:
        local_14c = local_14c + 1;
      } while ((int)local_14c < param_1[1]);
    }
    iVar16 = local_12c + 1;
    if (local_158 == (int *)0x0) {
      uVar35 = 0;
      do {
        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;
        uVar35 = uVar35 + 4;
      } while (uVar35 < 0x1c);
      bVar10 = false;
      local_b0._0_4_ = piVar11;
      if (local_148 == (int *)0x0) {
        local_170 = 0;
        uVar35 = 0;
        local_174 = (byte *)0x0;
      }
      else {
        iVar18 = 0;
        local_174 = (byte *)*local_148;
        piVar34 = local_148 + 1;
        if (0 < (int)local_174) {
          do {
            iVar22 = *piVar34;
            if (iVar22 != 0) {
              uVar33 = (ushort)local_98;
              local_b4 = &local_b0;
              local_c0 = 0;
              local_98 = local_98 & 0xffff6fef;
              local_cc = (int *)local_b0;
              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];
              ((int *)local_b0)[0x33] = iVar24;
              local_c8 = unaff_EDI + -0x50327;
              local_c4 = unaff_EDI + -0x606a7;
              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {
                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,
                             *(int *)(*(int *)local_b0 + 0x74));
              }
              else {
                FUN_0005c830();
                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);
                if ((local_98 & 0x10) != 0) {
                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;
                }
                if ((short)(ushort)local_98 < 0) {
                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;
                }
                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);
                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;
              }
              FUN_000638a0();
              FUN_00063e30();
              local_17c = (int *)0x0;
              if (param_3 != (int *)0x0) goto LAB_000f36b0;
              if (param_1 != (int *)0x0) {
                FUN_0005b000();
              }
              goto LAB_000f374a;
            }
LAB_000f41e7:
            iVar18 = iVar18 + 1;
            piVar34 = piVar34 + 5;
          } while (iVar18 < *local_148);
          local_170 = 0;
          local_16c._0_1_ = param_1 == (int *)0x0;
          uVar35 = (uint)local_16c._0_1_;
          goto LAB_000f3c52;
        }
        local_170 = 0;
        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);
      }
    }
    else {
      iVar18 = piVar11[0xb];
      piVar11[0xb] = iVar18 + 1;
      iVar22 = local_144[0x1a];
      FUN_00072f80(0,iVar22 + 1);
      local_e4 = 0xd;
      local_d4 = 0;
      local_dc = 0;
      if ((byte)local_130 != '\0') {
        local_dc = iVar16;
      }
      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);
      local_e0 = iVar18 + 1;
      iVar18 = FUN_000c4410();
      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))
      goto LAB_000f366b;
      local_170 = local_dc;
      FUN_00073150(0);
      *(undefined1 *)(local_144[3] + 0x13) = 0;
      *(undefined4 *)(local_144[3] + 0x1c) = 0;
      iVar18 = local_144[0x1a];
      iVar24 = *local_144;
      if (iVar22 < 0) {
        iVar22 = iVar18 + -1;
      }
      iVar25 = unaff_EDI + 0xc9455;
      if (*(char *)(iVar24 + 0x4d) == '\0') {
        iVar24 = iVar22 * 3;
        iVar25 = local_144[0x19] + iVar22 * 0x18;
      }
      *(int *)(iVar25 + 8) = iVar18;
      local_174 = *(byte **)*local_158;
      if (iVar14 == 0) {
        uVar42 = CONCAT44(iVar18,piVar11[2]);
        if (piVar11[2] == 0) {
          uVar42 = FUN_00073350();
          iVar24 = extraout_ECX_06;
        }
        iVar18 = (int)((ulonglong)uVar42 >> 0x20);
        piVar37 = (int *)uVar42;
        piVar34 = (int *)0x0;
        if (piVar12[0xe] != 0) {
          iVar18 = *piVar11;
          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));
              piVar34 = (int *)piVar34[6]) {
          }
        }
        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);
        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;
        local_16c._0_1_ = SUB41(uVar27,0);
        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;
        bVar10 = false;
        if (1 < piVar37[0x1a]) {
          iVar18 = 1;
          do {
            pcVar32 = (char *)(unaff_EDI + 0xc9455);
            if (*(char *)(*piVar37 + 0x4d) == '\0') {
              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);
            }
            if (*pcVar32 == 'm') {
              if (local_134 == *(int *)(pcVar32 + 0xc)) {
                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;
                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {
                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;
                }
              }
            }
            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))
            goto LAB_000f3b16;
            iVar18 = iVar18 + 1;
          } while (piVar37[0x1a] != iVar18);
        }
      }
      else {
LAB_000f3b16:
        piVar11[10] = piVar11[10] + 1;
        cVar2 = *(char *)((int)piVar11 + 0x13);
        if (cVar2 == '\0') {
          iVar18 = piVar11[0xb] + 1;
          iVar22 = iVar18;
LAB_000f4ecb:
          iVar22 = iVar22 + 1;
          piVar11[0xb] = iVar22;
        }
        else {
          bVar1 = cVar2 - 1;
          *(byte *)((int)piVar11 + 0x13) = bVar1;
          iVar18 = piVar11[bVar1 + 0x24];
          if (bVar1 == 0) {
            iVar22 = piVar11[0xb];
            goto LAB_000f4ecb;
          }
          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;
          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];
        }
        FUN_00073150(local_174);
        iVar19 = FUN_00073150(0);
        FUN_00072f80(local_174,iVar18);
        FUN_00073150(iVar22);
        FUN_00072f80(iVar18,iVar22);
        FUN_00073150(iVar19);
        iVar24 = local_144[0x1a];
        iVar25 = *local_144;
        if (iVar19 < 0) {
          iVar19 = iVar24 + -1;
        }
        iVar20 = unaff_EDI + 0xc9455;
        if (*(char *)(iVar25 + 0x4d) == '\0') {
          iVar25 = iVar19 * 3;
          iVar20 = local_144[0x19] + iVar19 * 0x18;
        }
        *(int *)(iVar20 + 8) = iVar24;
        if (iVar18 != 0) {
          FUN_00045e10();
          iVar25 = extraout_ECX_00;
          iVar24 = extraout_EDX;
        }
        bVar10 = true;
        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);
        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;
        local_16c._0_1_ = SUB41(uVar27,0);
        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;
        if (iVar22 != 0) {
          FUN_00045e10();
        }
      }
LAB_000f3c52:
      if (local_16c._0_1_ != false) {
        local_140 = (uint)(short)piVar12[10];
      }
    }
    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);
    if ((int)piVar34 < 1) {
      iVar18 = 0;
    }
    else {
      iVar18 = 0;
      pbVar21 = (byte *)(piVar12[1] + 0xf);
      pbVar29 = pbVar21 + (int)piVar34 * 0x10;
      do {
        bVar1 = *pbVar21;
        pbVar21 = pbVar21 + 0x10;
        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);
      } while (pbVar29 != pbVar21);
    }
    if ((char)uVar35 == '\0') {
      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;
      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      goto LAB_000f3673;
    }
    piVar34 = (int *)((int)piVar34 - iVar18);
    if ((byte *)piVar34 != local_174) {
      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      goto LAB_000f3673;
    }
LAB_000f3caf:
    local_16c = 0;
    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&
       (piVar11[0x1e] == 0)) {
      local_16c = piVar11[0xb] + 1;
      piVar11[0xb] = local_16c;
      FUN_00073150(local_16c);
    }
    local_168 = (int *)0x0;
    if (iVar13 == 0) {
      piVar37 = (int *)0x0;
      if (piVar12[0xe] == 0) {
        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);
      }
      if ((*(char *)(iVar26 + 0x4d) != '\0') ||
         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;
      iVar18 = piVar12[2];
      piVar34 = piVar37;
      if (0 < (int)piVar37) {
        iVar22 = piVar11[0xb];
        piVar30 = local_168;
        do {
          iVar22 = iVar22 + 1;
          piVar31 = piVar30 + 1;
          piVar11[0xb] = iVar22;
          *piVar30 = iVar22;
          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);
          piVar11[0xb] = iVar22;
          iVar18 = *(int *)(iVar18 + 0x14);
          piVar30 = piVar31;
          piVar34 = piVar11;
        } while (local_168 + (int)piVar37 != piVar31);
      }
    }
    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
    if (param_3 == (int *)0x0) {
LAB_000f3d98:
      if (bVar10) {
        iVar23 = FUN_00073150(0);
        local_160 = local_144[0x1a];
      }
      else if (local_158 == (int *)0x0) {
        local_160 = 0;
        iVar23 = 0;
      }
      else {
        iVar23 = FUN_00073150(0);
        local_160 = iVar23;
      }
      iVar18 = piVar11[0xe] + -1;
      piVar11[0xe] = iVar18;
      if ((local_e8[0] & 1) != 0) {
        iVar22 = FUN_00045e40();
        if ((int)local_140 < 0) {
          FUN_00073150(iVar22);
        }
        else {
          if (bVar10) {
            FUN_00072f80(local_140,iVar22,piVar34,piVar34);
          }
          else {
            FUN_000cb850();
          }
          iVar24 = FUN_00073150(0);
          FUN_00073150(iVar22);
          if (iVar24 < 0) {
            iVar24 = local_144[0x1a] + -1;
          }
          iVar25 = unaff_EDI + 0xc9455;
          if (*(char *)(*local_144 + 0x4d) == '\0') {
            iVar25 = local_144[0x19] + iVar24 * 0x18;
          }
          *(int *)(iVar25 + 8) = local_144[0x1a];
          FUN_00073150(0);
        }
        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
        if (0 < *(short *)((int)piVar12 + 0x2a)) {
          iVar25 = 0;
          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);
          iVar19 = 0;
          do {
            if (param_1 == (int *)0x0) {
              if (bVar39) goto LAB_000f4c2c;
LAB_000f4c96:
              if (bVar10) {
                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);
              }
              else {
                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];
                FUN_000cb850();
                iVar24 = piVar11[0xb] + 1;
                piVar11[0xb] = iVar24;
                FUN_00073150(iVar24);
                uVar3 = *puVar7;
                *(int *)(puVar7 + 0x1c) = iVar24;
                *puVar7 = 0xa4;
                puVar7[0x28] = uVar3;
                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;
              }
            }
            else {
              if (param_1[1] < 1) {
                iVar25 = 0;
              }
              else {
                iVar25 = 0;
                iVar24 = *(int *)(*param_1 + 4);
                while (iVar19 != iVar24) {
                  iVar25 = iVar25 + 1;
                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;
                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);
                }
                if (!bVar39) goto LAB_000f4c96;
              }
LAB_000f4c2c:
              FUN_000cb850();
            }
            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);
            iVar19 = iVar19 + 1;
            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
          } while (iVar19 < iVar24);
        }
        if (iVar13 == 0) {
          FUN_00073230();
          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
        }
        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);
        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;
        piVar34 = piVar12;
        if (iVar24 == 1) {
          FUN_0004b0a0();
        }
        else if (piVar11[7] < iVar24) {
          piVar11[7] = iVar24;
          piVar11[8] = iVar22;
        }
      }
      if (iVar13 == 0) {
        if (piVar12[0xe] != 0) {
          FUN_00073150(iVar15);
        }
        if ((int)local_140 < 0) {
          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);
          if (piVar37 == (int *)0x0) {
LAB_000f4a81:
            FUN_00072f80(local_12c,local_118,piVar34,piVar34);
            local_138 = 1;
          }
          else {
            FUN_00073150(local_12c);
            local_138 = 0;
          }
        }
        else {
          if (bVar10) {
            FUN_00072f80(local_140,local_12c,piVar34,piVar34);
          }
          else if (local_158 == (int *)0x0) {
            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&
               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;
            FUN_000cb850();
          }
          else {
            FUN_00073150(local_12c);
          }
          if (piVar12[0xe] == 0) {
            iVar13 = FUN_00073150(0);
            FUN_00072f80(local_12c,local_118);
            if (iVar13 < 0) {
              iVar13 = local_144[0x1a] + -1;
            }
            iVar22 = unaff_EDI + 0xc9455;
            if (*(char *)(*local_144 + 0x4d) == '\0') {
              iVar22 = local_144[0x19] + iVar13 * 0x18;
            }
            *(int *)(iVar22 + 8) = local_144[0x1a];
          }
          else {
            FUN_00073150(local_144[0x1a] + 2);
          }
          FUN_00073150(0);
          local_138 = 0;
          piVar37 = local_144;
        }
        if (0 < local_118) {
          FUN_00073150(local_12c);
        }
        if (0 < *(short *)((int)piVar12 + 0x2a)) {
          local_134 = 0;
          piVar37 = (int *)0x0;
          do {
            if ((int *)(int)(short)piVar12[10] == piVar37) {
              FUN_00073150(0);
            }
            else {
              if (param_1 == (int *)0x0) {
                iVar13 = (int)piVar37 * 0x10 + piVar12[1];
                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {
                  iVar22 = (int)piVar37 - local_134;
                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;
                }
                else {
                  local_134 = local_134 + 1;
                }
              }
              else {
                if (0 < param_1[1]) {
                  iVar22 = 0;
                  piVar34 = *(int **)(*param_1 + 4);
                  while (piVar34 != piVar37) {
                    iVar22 = iVar22 + 1;
                    if (iVar22 == param_1[1]) goto LAB_000f47ad;
                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);
                  }
                  if (local_174 != (byte *)0x0) {
LAB_000f47c2:
                    if (bVar10) {
                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);
                    }
                    else if (local_158 == (int *)0x0) {
                      FUN_000cb850();
                    }
                    else if (local_170 != iVar16) {
                      FUN_00073150(iVar16 + (int)piVar37);
                    }
                    goto LAB_000f4756;
                  }
                }
LAB_000f47ad:
                iVar13 = (int)piVar37 * 0x10 + piVar12[1];
              }
              if (*(char *)((int)piVar11 + 0x17) == '\0') {
LAB_000f474b:
                FUN_000cb850();
              }
              else {
                local_9c = CONCAT31(local_9c._1_3_,2);
                local_98 = 0;
                local_b0._4_4_ = unaff_EDI + -0xadd67;
                local_a8[0] = unaff_EDI + -0xb66d7;
                if (*(int *)(iVar13 + 4) != 0) {
                  FUN_0005c830();
                  if ((char)local_9c == '\0') goto LAB_000f474b;
                }
                FUN_00087b20();
              }
            }
LAB_000f4756:
            piVar37 = (int *)((int)piVar37 + 1);
          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));
        }
        if (piVar12[0xe] == 0) {
          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0
                       ,0,param_3,piVar37,piVar37);
          FUN_000ec820(iVar15,0,0);
          if ((int *)local_b0 == (int *)0x0) {
            bVar39 = true;
          }
          else {
            bVar39 = false;
            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {
              iVar26 = FUN_00049430();
              bVar39 = *(int *)(iVar26 + 8) == 0;
            }
          }
          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);
        }
        else {
          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));
              piVar34 = (int *)piVar34[6]) {
          }
          FUN_0009a0c0();
          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);
          FUN_00062750(0xfffffff4);
          uVar28 = (undefined2)param_2;
          if (param_2 == 0xb) {
            uVar28 = 2;
          }
          if (0 < local_144[0x1a]) {
            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;
          }
          piVar34 = (int *)piVar11[0x1d];
          if ((int *)piVar11[0x1d] == (int *)0x0) {
            piVar34 = piVar11;
          }
          *(undefined1 *)((int)piVar34 + 0x15) = 1;
        }
      }
      if (local_16c != 0) {
        FUN_00073150(1);
      }
      if (iVar14 != 0) {
        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);
      }
      FUN_0006dec0();
      if (bVar10) {
        FUN_00073150(local_160);
        if (iVar23 < 0) {
          iVar23 = local_144[0x1a] + -1;
        }
        iVar26 = unaff_EDI + 0xc9455;
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          iVar26 = iVar23 * 0x18 + local_144[0x19];
        }
        *(int *)(iVar26 + 8) = local_144[0x1a];
        FUN_00073150(0);
      }
      else if (local_158 != (int *)0x0) {
        FUN_00073150(local_160);
        if (iVar23 < 0) {
          iVar23 = local_144[0x1a] + -1;
        }
        iVar26 = unaff_EDI + 0xc9455;
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          iVar26 = local_144[0x19] + iVar23 * 0x18;
        }
        *(int *)(iVar26 + 8) = local_144[0x1a];
      }
      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)
         ) {
        FUN_000916b0();
      }
      local_17c = local_168;
      if (local_16c != 0) {
        FUN_00073150(1);
        FUN_00061230();
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);
        }
      }
      goto LAB_000f3673;
    }
    if (piVar12[0xe] == 0) {
      *(int *)(iVar23 + 0x30) = local_f0;
      param_3[5] = iVar23;
      param_3[7] = local_f0;
      param_3[6] = iVar16;
      piVar34 = (int *)*param_3;
      param_3[8] = local_ec;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      if (piVar34 != (int *)0x0) {
        uVar35 = 0;
        do {
          *(undefined4 *)((int)local_a8 + uVar35) = 0;
          uVar35 = uVar35 + 4;
        } while (uVar35 < 0x18);
        local_b0 = uVar41;
        if (0 < *piVar34) {
          iVar18 = 0;
          do {
            iVar22 = FUN_00089330();
            if (iVar22 != 0) goto LAB_000f3d98;
            iVar18 = iVar18 + 1;
          } while (iVar18 < *piVar34);
        }
        iVar18 = FUN_00089330();
        if (iVar18 == 0) {
          iVar18 = *(int *)(iVar23 + 0x18);
          puVar8 = (uint *)*param_3;
          uVar9 = *(undefined4 *)(iVar23 + 0x30);
          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||
             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {
            piVar37 = (int *)local_90;
            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {
              *piVar37 = 0;
              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;
            }
            local_58[0] = 0x9e;
            local_90[0] = 0x66;
            iVar22 = 0;
            local_3c = uVar9;
            local_84 = (int *)local_58;
            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {
              if ((*(char *)(iVar23 + 0x36) != '\0') &&
                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {
                iVar22 = *(int *)(iVar23 + 0x24);
                if (iVar22 == 0) {
LAB_000f502a:
                  if (uVar35 == 0) {
LAB_000f50dd:
                    param_3[4] = iVar23;
                    goto LAB_000f3d98;
                  }
                  uVar27 = 0;
                  while( true ) {
                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);
                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {
                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);
                      piVar34 = piVar37;
                      if ((char)*piVar37 != 'f') {
                        piVar34 = (int *)local_90;
                        local_84 = piVar37;
                      }
                    }
                    else {
                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);
                      piVar34 = (int *)local_90;
                      local_84 = (int *)local_58;
                    }
                    local_160 = 0;
                    while( true ) {
                      iVar18 = FUN_000872a0(uVar9);
                      iVar22 = extraout_ECX_02;
                      if (iVar18 < 2) break;
                      local_160 = local_160 + 1;
                      if (uVar35 == local_160) goto LAB_000f4fe0;
                    }
                    if ((int)uVar35 <= (int)local_160) break;
                    uVar27 = uVar27 + 1;
                    if (uVar35 == uVar27) goto LAB_000f50dd;
                  }
                }
                else if (param_3[1] != 0) {
                  iVar18 = FUN_000872a0(uVar9);
                  iVar22 = extraout_ECX_01;
                  if (iVar18 == 0) {
                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);
                    goto LAB_000f502a;
                  }
                }
              }
LAB_000f4fe0:
            }
            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);
          }
        }
      }
      goto LAB_000f3d98;
    }
    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);
    FUN_000638a0();
    local_17c = local_168;
    if (local_148 != (int *)0x0) goto LAB_000f3688;
  }
  else {
    FUN_000638a0();
    local_17c = (int *)0x0;
LAB_000f36a8:
    if (param_3 == (int *)0x0) goto LAB_000f370c;
  }
LAB_000f36b0:
  if (*param_3 != 0) {
    FUN_00063e30();
  }
  if (param_3[1] != 0) {
    FUN_00063d60();
  }
  if (param_3[2] != 0) {
    FUN_00063e30();
  }
  if (param_3[3] != 0) {
    FUN_00063d60();
  }
  FUN_00044090();
LAB_000f370c:
  if (local_158 != (int *)0x0) {
    FUN_00063a90();
  }
  if (param_1 != (int *)0x0) {
    FUN_0005b000();
  }
  if (local_17c != (int *)0x0) {
    FUN_00044090();
  }
LAB_000f374a:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00153870();
}


PUSH EBP
PUSH EDI
CALL 0x0003a401
ADD EDI,0xc78c1
PUSH ESI
PUSH EBX
SUB ESP,0x17c
MOV EBX,dword ptr [EAX + 0x24]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x3c],EDI
MOV EDI,dword ptr [ESP + 0x190]
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x30],EDI
MOV EDI,dword ptr [ESP + 0x198]
MOV dword ptr [ESP + 0x34],ECX
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x16c],EDI
XOR EDI,EDI
MOV EDI,dword ptr [EAX]
TEST EBX,EBX
MOV dword ptr [ESP + 0x9c],0x0
MOV dword ptr [ESP + 0xa0],0x0
MOV dword ptr [ESP + 0xc],EDI
MOV EAX,EDI
JNZ 0x000f369b
MOVZX EAX,byte ptr [EDI + 0x4d]
MOV byte ptr [ESP + 0x53],AL
TEST AL,AL
JNZ 0x000f3697
MOV dword ptr [ESP + 0xac],0x0
MOV EAX,ECX
TEST ECX,ECX
JZ 0x000f35ff
TEST byte ptr [ECX + 0x9],0x2
JNZ 0x000f3f30
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000ed210
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x000f4000
MOV dword ptr [ESP + 0x44],0x0
MOV EDX,dword ptr [EAX + 0x48]
TEST EDX,EDX
JZ 0x000f4573
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00046080
MOV dword ptr [ESP + 0x58],EAX
SHL EAX,0x4
SUB ESP,0x8
MOV ESI,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESI + 0x10]
PUSH dword ptr [EDX + EAX*0x1]
MOV EDX,0x12
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [EDI]
MOV EAX,EBX
CALL 0x00088da0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000f3769
MOV dword ptr [ESP + 0x10],0x0
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x000638a0
MOV ESI,dword ptr [ESP + 0x44]
TEST ESI,ESI
JZ 0x000f36a8
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00063e30
JMP 0x000f36a8
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x000638a0
MOV dword ptr [ESP + 0x10],0x0
MOV EBX,dword ptr [ESP + 0x14]
TEST EBX,EBX
JZ 0x000f370c
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x000f36c3
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00063e30
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x000f36d7
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00063d60
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x000f36eb
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00063e30
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0xc]
TEST EDX,EDX
JZ 0x000f36ff
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00063d60
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00044090
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000f3724
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,0x1
CALL 0x00063a90
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f3737
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0005b000
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x000f374a
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00044090
MOV EAX,dword ptr [ESP + 0x16c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000f5986
ADD ESP,0x17c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EDI + 0x24]
SUB ESP,0x8
MOV ECX,0x74
MOV EDX,EDI
MOV dword ptr [ESP + 0x5c],EAX
LEA EAX,[ESP + 0xac]
PUSH EAX
MOV EAX,EBX
PUSH 0x0
CALL 0x00049a60
MOV ESI,dword ptr [EDI + 0xc]
MOV EDX,EDI
MOV dword ptr [ESP + 0x78],EAX
MOV EAX,EBX
MOV dword ptr [ESP + 0x7c],ESI
CALL 0x000d9b60
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000f366b
MOV ECX,dword ptr [ESP + 0xa4]
MOV EDX,EDI
MOV EAX,EBX
CALL 0x0008b7b0
TEST EAX,EAX
JNZ 0x000f366b
MOV EDI,dword ptr [EBX + 0x8]
MOV EAX,EBX
MOV dword ptr [ESP + 0x48],EDI
TEST EDI,EDI
JZ 0x000f3f88
MOV EAX,dword ptr [ESP + 0x28]
CMP byte ptr [EAX + 0x12],0x0
JNZ 0x000f37e8
MOV EAX,dword ptr [ESP + 0x48]
OR byte ptr [EAX + 0x8d],0x20
MOV EAX,dword ptr [ESP + 0x68]
XOR EDX,EDX
MOV ECX,dword ptr [ESP + 0x58]
OR EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ESP + 0x28]
SETNZ DL
CALL 0x000bcbf0
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f427f
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x74],0x0
TEST byte ptr [EAX + 0x24],0x8
JZ 0x000f3833
MOV ECX,EAX
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x00055fd0
MOV dword ptr [ESP + 0x74],EAX
MOV EDI,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EDI + 0x2c]
MOVSX EAX,word ptr [ECX + 0x2a]
LEA EAX,[ESI + EAX*0x1 + 0x1]
LEA EBX,[ESI + 0x1]
MOV dword ptr [ESP + 0x7c],ESI
MOV dword ptr [EDI + 0x2c],EAX
MOV EDX,dword ptr [ECX + 0x38]
MOV dword ptr [ESP + 0x70],EBX
MOV dword ptr [ESP + 0x60],EBX
TEST EDX,EDX
JZ 0x000f3870
ADD ESI,0x2
ADD EAX,0x1
MOV dword ptr [ESP + 0x7c],EBX
MOV dword ptr [ESP + 0x60],ESI
MOV dword ptr [EDI + 0x2c],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV ECX,dword ptr [ESP + 0x30]
AND EAX,0x20
MOV dword ptr [ESP + 0x78],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [ESP + 0x8],EAX
SHR EAX,0x7
XOR EAX,0x1
AND EAX,0x1
MOV byte ptr [ESP + 0x5c],AL
TEST ECX,ECX
JZ 0x000f4012
MOV EAX,dword ptr [ECX + 0x4]
TEST EAX,EAX
JLE 0x000f4012
XOR EAX,EAX
MOV EDX,dword ptr [ECX]
MOV dword ptr [EDX + EAX*0x8 + 0x4],0xffffffff
MOV EDX,dword ptr [ECX + 0x4]
ADD EAX,0x1
CMP EDX,EAX
JG 0x000f38ac
TEST EDX,EDX
JLE 0x000f4012
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x4c],0xffffffff
MOVSX EAX,word ptr [EAX + 0x2a]
MOV dword ptr [ESP + 0x1c],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [ESP + 0x30]
SHL EAX,0x3
MOV dword ptr [ESP + 0x64],EAX
ADD EAX,dword ptr [EDI]
MOV dword ptr [ESP + 0x54],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JLE 0x000f399e
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x3c]
XOR EBP,EBP
MOV EAX,dword ptr [EAX + 0x4]
LEA EBX,[ESI + 0xfffae9b8]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x18]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x2c],AL
MOVZX EAX,byte ptr [ESI + EAX*0x1 + 0xfffae9b8]
MOV byte ptr [ESP + 0x24],AL
LEA ESI,[ESI]
MOV EAX,EBP
MOV ESI,dword ptr [ESP + 0x20]
MOVZX ECX,byte ptr [ESP + 0x24]
SHL EAX,0x4
MOV EAX,dword ptr [ESI + EAX*0x1]
MOVZX EDX,byte ptr [EAX]
CMP byte ptr [EBX + EDX*0x1],CL
JNZ 0x000f3995
CMP byte ptr [ESP + 0x2c],0x0
JZ 0x000f3fa0
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x000f3978
TEST CL,CL
JZ 0x000f3fa0
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
ADD EDX,0x1
MOVZX EDI,byte ptr [EDX]
MOVZX ESI,byte ptr [EAX]
MOV ECX,EDI
MOVZX EAX,byte ptr [EBX + ESI*0x1]
CMP byte ptr [EBX + EDI*0x1],AL
JZ 0x000f3970
ADD EBP,0x1
CMP EBP,dword ptr [ESP + 0x1c]
JNZ 0x000f3940
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x00045bc0
TEST EAX,EAX
JZ 0x000f401f
MOV EAX,dword ptr [ESP + 0x78]
TEST EAX,EAX
JNZ 0x000f401f
MOV EAX,dword ptr [ESP + 0x40]
MOV byte ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x4c],EAX
MOV ESI,dword ptr [ESP + 0x30]
ADD dword ptr [ESP + 0x40],0x1
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [ESI + 0x4],EAX
JG 0x000f38e8
MOV EAX,dword ptr [ESP + 0x60]
ADD EAX,0x1
MOV dword ptr [ESP + 0x64],EAX
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000f4055
MOV EBP,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x48]
SUB ESP,0x8
MOV EDX,0xd
MOV ESI,dword ptr [EBP + 0x2c]
MOV dword ptr [ESP + 0x10],ESI
LEA ESI,[ESI + 0x1]
MOV dword ptr [EBP + 0x2c],ESI
MOV EBX,dword ptr [EDI + 0x68]
MOV ECX,ESI
LEA EAX,[EBX + 0x1]
PUSH EAX
MOV EAX,EDI
PUSH 0x0
CALL 0x00072f80
MOV byte ptr [ESP + 0xb8],0xd
MOV EAX,0x0
MOV dword ptr [ESP + 0xbc],ESI
MOV dword ptr [ESP + 0xc8],0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x34]
CMP byte ptr [ESP + 0x5c],0x0
CMOVNZ EAX,dword ptr [ESP + 0x64]
LEA ECX,[ESP + 0xa8]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOVSX EAX,word ptr [EAX + 0x2a]
MOV dword ptr [ESP + 0xb4],EAX
MOV EAX,EBP
CALL 0x000c4410
TEST EAX,EAX
JNZ 0x000f366b
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX + 0x4d]
MOV byte ptr [ESP + 0x53],AL
TEST AL,AL
JNZ 0x000f366b
MOV EAX,dword ptr [EBP + 0x24]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JNZ 0x000f366b
MOV EAX,dword ptr [ESP + 0xb0]
SUB ESP,0xc
MOV ECX,ESI
MOV EDX,0x43
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,EDI
PUSH 0x0
CALL 0x00073150
MOV EAX,dword ptr [EDI + 0xc]
ADD ESP,0x10
TEST EBX,EBX
MOV byte ptr [EAX + 0x13],0x0
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EAX + 0x1c],0x0
MOV EDX,dword ptr [EDI + 0x68]
MOV ECX,dword ptr [EDI]
LEA EAX,[EDX + -0x1]
CMOVS EBX,EAX
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f3afb
MOV EAX,dword ptr [EDI + 0x64]
LEA ECX,[EBX + EBX*0x2]
LEA EAX,[EAX + ECX*0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x68]
TEST EAX,EAX
JZ 0x000f59ed
MOV EDI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [ESP + 0x8],EAX
ADD EAX,0x1
MOV dword ptr [EDI + 0x28],EAX
MOVZX EAX,byte ptr [EDI + 0x13]
TEST AL,AL
JZ 0x000f59dc
LEA EDX,[EAX + -0x1]
MOVZX ECX,DL
MOV byte ptr [EDI + 0x13],DL
MOV ESI,dword ptr [EDI + ECX*0x4 + 0x90]
TEST DL,DL
JZ 0x000f4ec8
SUB EAX,0x2
MOV byte ptr [EDI + 0x13],AL
MOVZX EAX,AL
MOV EDI,dword ptr [EDI + EAX*0x4 + 0x90]
SUB ESP,0xc
MOV EDX,0x71
PUSH dword ptr [ESP + 0x24]
MOV EBP,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,EBP
CALL 0x00073150
MOV ECX,dword ptr [ESP + 0xbc]
MOV EAX,EBP
MOV EDX,0xe
MOV dword ptr [ESP],0x0
CALL 0x00073150
MOV EBX,EAX
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0x2c]
MOV EDX,0x66
MOV EAX,EBP
CALL 0x00072f80
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x79
MOV EAX,EBP
MOV dword ptr [ESP],EDI
CALL 0x00073150
POP ECX
POP EAX
PUSH EDI
PUSH ESI
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x7a
MOV EAX,EBP
CALL 0x00072f80
XOR ECX,ECX
MOV EDX,0xb
MOV EAX,EBP
MOV dword ptr [ESP],EBX
CALL 0x00073150
MOV EDX,dword ptr [EBP + 0x68]
ADD ESP,0x10
MOV ECX,dword ptr [EBP]
TEST EBX,EBX
LEA EAX,[EDX + -0x1]
CMOVS EBX,EAX
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f3c0b
MOV EAX,dword ptr [EBP + 0x64]
LEA ECX,[EBX + EBX*0x2]
LEA EAX,[EAX + ECX*0x8]
MOV dword ptr [EAX + 0x8],EDX
TEST ESI,ESI
JZ 0x000f3c1d
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,ESI
CALL 0x00045e10
MOV EBP,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x18]
MOV byte ptr [ESP + 0x53],0x1
TEST EBP,EBP
SETZ DL
TEST EAX,EAX
SETG CL
AND ECX,EDX
TEST EAX,EAX
MOV byte ptr [ESP + 0x20],CL
SETNZ CL
AND ECX,EDX
MOV EBP,ECX
TEST EDI,EDI
JZ 0x000f3c52
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,EDI
CALL 0x00045e10
CMP byte ptr [ESP + 0x20],0x0
JZ 0x000f3c65
MOV EAX,dword ptr [ESP + 0x10]
MOVSX EAX,word ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOVSX EBX,word ptr [EAX + 0x2a]
TEST EBX,EBX
JLE 0x000f4eda
MOV EAX,dword ptr [EAX + 0x4]
MOV ESI,EBX
XOR ECX,ECX
SHL ESI,0x4
MOV dword ptr [ESP + 0x20],EAX
ADD EAX,0xf
ADD ESI,EAX
MOVZX EDX,byte ptr [EAX]
ADD EAX,0x10
SAR EDX,0x1
AND EDX,0x1
ADD ECX,EDX
CMP ESI,EAX
JNZ 0x000f3c88
MOV EAX,EBP
TEST AL,AL
JZ 0x000f423d
SUB EBX,ECX
CMP EBX,dword ptr [ESP + 0x18]
JNZ 0x000f449f
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x20],0x0
TEST byte ptr [EAX + 0x1c],0x80
JZ 0x000f3cd6
MOV EAX,dword ptr [ESP + 0x28]
CMP byte ptr [EAX + 0x12],0x0
JNZ 0x000f3cd6
MOV EDX,dword ptr [EAX + 0x78]
TEST EDX,EDX
JZ 0x000f59b1
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x24],0x0
TEST EAX,EAX
JZ 0x000f44d1
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x000f3d98
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EAX + 0x38]
TEST ESI,ESI
JNZ 0x000f4f03
MOV EDI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [ESP + 0x38]
MOV dword ptr [EBX + 0x30],EAX
MOV dword ptr [EDI + 0x14],EBX
MOV EBX,dword ptr [ESP + 0x64]
MOV dword ptr [EDI + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [EDI + 0x18],EBX
MOV EBX,dword ptr [EDI]
MOV dword ptr [EDI + 0x20],EAX
TEST EBX,EBX
JZ 0x000f3d98
LEA EDX,[ESP + 0xe4]
XOR ECX,ECX
XOR EAX,EAX
MOV dword ptr [EDX + EAX*0x1],ECX
ADD EAX,0x4
CMP EAX,0x18
JC 0x000f3d3f
MOV EAX,dword ptr [ESP + 0x28]
LEA EBP,[ESP + 0xdc]
MOV dword ptr [ESP + 0xdc],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0xe0],EAX
MOV EDI,dword ptr [EBX]
TEST EDI,EDI
JLE 0x000f4f50
LEA EDI,[EBX + 0x4]
LEA EBP,[ESP + 0xdc]
JMP 0x000f3d8b
ADD ESI,0x1
ADD EDI,0x14
CMP ESI,dword ptr [EBX]
JGE 0x000f4f50
MOV EDX,dword ptr [EDI]
MOV EAX,EBP
CALL 0x00089330
TEST EAX,EAX
JZ 0x000f3d7d
CMP byte ptr [ESP + 0x53],0x0
JNZ 0x000f4e1c
MOV EDI,dword ptr [ESP + 0x34]
TEST EDI,EDI
JZ 0x000f4e0d
SUB ESP,0xc
MOV EDX,0xe
PUSH 0x0
MOV ECX,dword ptr [ESP + 0xbc]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],EAX
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [EAX + 0x38]
LEA ESI,[EDI + -0x1]
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [EAX + 0x38],ESI
TEST byte ptr [ESP + 0xa4],0x1
JNZ 0x000f4b27
MOV EAX,dword ptr [ESP + 0x6c]
TEST EAX,EAX
JZ 0x000f4585
MOV EBX,dword ptr [ESP + 0x20]
TEST EBX,EBX
JNZ 0x000f4ea9
MOV EDX,dword ptr [ESP + 0x68]
TEST EDX,EDX
JZ 0x000f3e47
SUB ESP,0x8
MOV ECX,0x74
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x1a0]
MOV ESI,dword ptr [ESP + 0x20]
MOV EBX,dword ptr [ESP + 0x8c]
MOVSX EAX,word ptr [ESI + 0x2a]
SUB EBX,EAX
PUSH EBX
PUSH ESI
PUSH 0x2
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x48]
CALL 0x000ef6e0
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x48]
CALL 0x0006dec0
CMP byte ptr [ESP + 0x53],0x0
JNZ 0x000f4e46
MOV ECX,dword ptr [ESP + 0x34]
TEST ECX,ECX
JZ 0x000f3ead
SUB ESP,0xc
XOR ECX,ECX
MOV EDX,0xb
PUSH dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x58]
MOV EAX,EDI
CALL 0x00073150
MOV EDX,dword ptr [EDI + 0x68]
ADD ESP,0x10
MOV ECX,dword ptr [EDI]
TEST EBP,EBP
LEA EAX,[EDX + -0x1]
CMOVS EBP,EAX
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f3eaa
MOV EAX,dword ptr [EDI + 0x64]
LEA ECX,[EBP + EBP*0x2]
LEA EAX,[EAX + ECX*0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EAX,dword ptr [ESP + 0x28]
CMP byte ptr [EAX + 0x12],0x0
JNZ 0x000f3ec2
MOV EDX,dword ptr [EAX + 0x78]
TEST EDX,EDX
JZ 0x000f4ee1
MOV EAX,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x10],EAX
TEST EDI,EDI
JZ 0x000f3673
SUB ESP,0xc
MOV EDX,0x51
PUSH 0x1
MOV ESI,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x30]
MOV EAX,ESI
CALL 0x00073150
MOV EAX,ESI
MOV EDX,0x1
CALL 0x00061230
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
CMP byte ptr [EAX + 0x4d],0x0
JNZ 0x000f3673
SUB ESP,0x8
XOR ECX,ECX
XOR EDX,EDX
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x48]
LEA EAX,[EAX + 0xfffa2f0b]
PUSH EAX
MOV EAX,ESI
CALL 0x0006fe70
ADD ESP,0x10
JMP 0x000f3673
MOV EDX,dword ptr [ECX + 0x34]
TEST EDX,EDX
JNZ 0x000f35ff
MOV ESI,dword ptr [ECX]
MOV dword ptr [ECX],0x0
MOV EDX,EAX
MOV ECX,0x1
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x44],ESI
CALL 0x00063a90
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000ed210
MOV dword ptr [ESP + 0x34],EAX
TEST EAX,EAX
JZ 0x000f366b
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x34],0x0
JMP 0x000f3620
CALL 0x00073350
MOV dword ptr [ESP + 0x48],EAX
TEST EAX,EAX
JNZ 0x000f37d3
JMP 0x000f366b
MOV EAX,dword ptr [ESP + 0x54]
MOV EDI,dword ptr [ESP + 0x40]
MOVZX ESI,byte ptr [ESP + 0x5c]
MOV dword ptr [EAX + 0x4],EBP
CMP EBP,EDI
MOV EAX,0x0
CMOVNZ ESI,EAX
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0x10]
MOV byte ptr [ESP + 0x5c],AL
MOVSX EAX,word ptr [ESI + 0x28]
CMP EAX,EBP
MOV EAX,dword ptr [ESP + 0x4c]
CMOVZ EAX,EDI
MOV dword ptr [ESP + 0x4c],EAX
MOVSX EAX,word ptr [ESI + 0x2a]
MOV dword ptr [ESP + 0x1c],EAX
CMP EAX,EBP
JG 0x000f39c8
MOV EAX,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x64]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + EDI*0x1]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x000f399e
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x000638a0
JMP 0x000f36a8
MOV dword ptr [ESP + 0x4c],0xffffffff
JMP 0x000f39de
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
PUSH 0x0
PUSH dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x54]
LEA EAX,[EAX + 0xfffb0438]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x44]
PUSH EDI
CALL 0x000886b0
ADD ESP,0x20
MOV byte ptr [EDI + 0x11],0x1
MOV dword ptr [ESP + 0x10],0x0
JMP 0x000f3673
LEA ECX,[ESP + 0xe0]
XOR EDX,EDX
XOR EAX,EAX
MOV dword ptr [ECX + EAX*0x1],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x000f4060
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0xdc],EAX
TEST EDI,EDI
JZ 0x000f4480
MOV EAX,dword ptr [ESP + 0x44]
XOR EBP,EBP
MOV EBX,dword ptr [EAX]
LEA EDI,[EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x3c]
LEA ESI,[EAX + 0xffee8418]
LEA EAX,[EAX + 0xffed8098]
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x8],ESI
MOV dword ptr [ESP + 0x1c],EAX
TEST EBX,EBX
JLE 0x000f598b
MOV EBX,dword ptr [EDI]
TEST EBX,EBX
JZ 0x000f41e7
MOVZX ESI,word ptr [ESP + 0xf4]
MOV ECX,dword ptr [ESP + 0x8]
LEA EDX,[ESP + 0xdc]
MOV dword ptr [ESP + 0xcc],0x0
MOV dword ptr [ESP + 0xd8],EDX
MOV EAX,ESI
MOV dword ptr [ESP + 0xc4],ECX
MOV ECX,dword ptr [ESP + 0x1c]
AND AX,0x6fef
MOV word ptr [ESP + 0xf4],AX
MOV EAX,dword ptr [ESP + 0xdc]
MOV dword ptr [ESP + 0xc8],ECX
MOV EDX,dword ptr [EBX + 0x18]
MOV dword ptr [ESP + 0xc0],EAX
MOV ECX,dword ptr [EAX]
ADD EDX,dword ptr [EAX + 0xcc]
MOV dword ptr [EAX + 0xcc],EDX
MOV ECX,dword ptr [ECX + 0x74]
CMP EDX,ECX
JG 0x000f4220
MOV EDX,EBX
LEA EAX,[ESP + 0xc0]
CALL 0x0005c830
MOV EDX,dword ptr [ESP + 0xc0]
MOV EAX,dword ptr [EBX + 0x18]
SUB dword ptr [EDX + 0xcc],EAX
MOVZX ECX,word ptr [ESP + 0xf4]
TEST CL,0x10
JZ 0x000f4161
OR dword ptr [EBX + 0x4],0x2
MOVZX ECX,word ptr [ESP + 0xf4]
TEST CX,CX
JNS 0x000f4175
OR dword ptr [EBX + 0x4],0x8000000
MOVZX ECX,word ptr [ESP + 0xf4]
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0xf0]
AND AX,0x9010
OR EAX,ECX
MOV word ptr [ESP + 0xf4],AX
TEST ESI,ESI
JLE 0x000f41e0
MOV EDI,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,EDI
CALL 0x000638a0
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,EDI
CALL 0x00063e30
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x10],0x0
TEST ECX,ECX
JNZ 0x000f36b0
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f374a
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0005b000
JMP 0x000f374a
MOV EBX,dword ptr [EDX + 0x24]
TEST EBX,EBX
JG 0x000f4190
MOV EAX,dword ptr [ESP + 0x44]
ADD EBP,0x1
ADD EDI,0x14
CMP EBP,dword ptr [EAX]
JL 0x000f40b1
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x8],0xffffffff
TEST ECX,ECX
SETZ byte ptr [ESP + 0x20]
MOVZX EAX,byte ptr [ESP + 0x20]
MOV EBP,EAX
JMP 0x000f3c52
SUB ESP,0x4
PUSH ECX
MOV EDI,dword ptr [ESP + 0x44]
LEA EDX,[EDI + 0xfffaf00c]
PUSH EDX
PUSH EAX
CALL 0x000886b0
ADD ESP,0x10
JMP 0x000f4190
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f3caf
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,dword ptr [ESP + 0x18]
JZ 0x000f3caf
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x44]
LEA EAX,[EAX + 0xfffa2ef2]
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x000886b0
ADD ESP,0x10
MOV dword ptr [ESP + 0x10],0x0
JMP 0x000f3673
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000f380e
MOV EBX,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [EBX + 0x104]
TEST EBP,EBP
JNZ 0x000f380e
MOV EDI,dword ptr [EAX + 0x40]
TEST EDI,EDI
JNZ 0x000f380e
MOV EAX,dword ptr [EBX]
MOV ESI,dword ptr [ESP + 0x10]
MOVZX EBX,byte ptr [EBX + 0x8e]
MOV ECX,ESI
MOV dword ptr [ESP + 0x2c],EAX
MOV EDX,EBX
MOV byte ptr [ESP + 0x8],BL
CALL 0x000460a0
TEST EAX,EAX
JNZ 0x000f380e
CMP dword ptr [ESI + 0x38],0x0
JNZ 0x000f380e
MOV EAX,dword ptr [ESP + 0x194]
MOV dword ptr [ESP + 0x40],EAX
CMP EAX,0xb
JZ 0x000f5951
MOV EDI,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EDI + 0x20]
CMP dword ptr [EAX],0x1
JNZ 0x000f380e
CMP dword ptr [EAX + 0x1c],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0x24],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0x30],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0x28],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0x3c],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0x34],0x0
JNZ 0x000f380e
TEST byte ptr [EDI + 0x8],0x1
JNZ 0x000f380e
MOV EDX,dword ptr [EDI]
CMP dword ptr [EDX],0x1
JNZ 0x000f380e
MOV EDX,dword ptr [EDX + 0x4]
CMP byte ptr [EDX],0xa8
JNZ 0x000f380e
LEA ECX,[EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x28]
XOR EDX,EDX
CALL 0x000eb150
MOV EDI,EAX
TEST EAX,EAX
JZ 0x000f380e
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x1c]
CMP dword ptr [EDI + 0x1c],EAX
JZ 0x000f5ae1
MOV ESI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESI + 0x24]
MOV EDX,EAX
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x24]
SHR EDX,0x5
SHR EAX,0x5
XOR EDX,0x1
XOR EAX,0x1
AND EDX,0x1
AND EAX,0x1
CMP DL,AL
JNZ 0x000f380e
CMP dword ptr [EDI + 0x38],0x0
JNZ 0x000f380e
CMP dword ptr [EDI + 0xc],0x0
JNZ 0x000f380e
MOVSX EAX,word ptr [ESI + 0x2a]
CMP AX,word ptr [EDI + 0x2a]
JNZ 0x000f380e
MOVZX EBX,word ptr [EDI + 0x28]
CMP word ptr [ESI + 0x28],BX
JNZ 0x000f380e
MOV dword ptr [ESP + 0x8],EAX
XOR EBP,EBP
CMP EBP,dword ptr [ESP + 0x8]
JGE 0x000f514d
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,EBP
SHL EBX,0x4
MOV ESI,dword ptr [EAX + 0x4]
ADD ESI,EBX
ADD EBX,dword ptr [EDI + 0x4]
MOVZX EAX,byte ptr [EBX + 0xd]
CMP byte ptr [ESI + 0xd],AL
JNZ 0x000f380e
MOV EAX,dword ptr [ESI + 0x8]
MOV EDX,dword ptr [EBX + 0x8]
TEST EAX,EAX
JZ 0x000f4ef6
TEST EDX,EDX
JZ 0x000f380e
CALL 0x000446c0
TEST EAX,EAX
JNZ 0x000f380e
CMP byte ptr [ESI + 0xc],0x0
JZ 0x000f443c
CMP byte ptr [EBX + 0xc],0x0
JZ 0x000f380e
TEST EBP,EBP
JLE 0x000f4478
MOV EAX,dword ptr [ESI + 0x4]
MOV EDX,dword ptr [EBX + 0x4]
TEST EAX,EAX
SETZ BL
TEST EDX,EDX
SETZ CL
CMP BL,CL
JNZ 0x000f380e
TEST EAX,EAX
JZ 0x000f4478
PUSH ESI
PUSH ESI
PUSH dword ptr [EDX + 0x8]
PUSH dword ptr [EAX + 0x8]
MOV EBX,dword ptr [ESP + 0x4c]
CALL 0x00015090
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000f380e
ADD EBP,0x1
JMP 0x000f43e1
MOV dword ptr [ESP + 0x1c],0x0
XOR EBP,EBP
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x8],0xffffffff
JMP 0x000f3c65
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH EBX
PUSH 0x0
PUSH dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x54]
LEA EAX,[EAX + 0xfffb0458]
PUSH EAX
PUSH dword ptr [ESP + 0x44]
CALL 0x000886b0
ADD ESP,0x20
MOV dword ptr [ESP + 0x10],0x0
JMP 0x000f3673
MOV EDX,dword ptr [ESP + 0x10]
XOR EBX,EBX
MOV EAX,dword ptr [EDX + 0x38]
TEST EAX,EAX
JNZ 0x000f450a
SUB ESP,0xc
MOV ECX,0x6e
LEA EAX,[ESP + 0xac]
PUSH EAX
LEA EAX,[ESP + 0xac]
PUSH EAX
PUSH 0x0
PUSH -0x1
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x48]
CALL 0x00091910
ADD ESP,0x20
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX + 0x4d],0x0
JNZ 0x000f366b
LEA ESI,[EBX*0x4 + 0x4]
XOR ECX,ECX
MOV EDX,ESI
CALL 0x00055c10
MOV EDI,EAX
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x000f366b
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JLE 0x000f3cea
MOV EBX,dword ptr [ESP + 0x28]
MOV EDX,EDI
LEA ESI,[EDI + ESI*0x1 + -0x4]
MOV EAX,dword ptr [EBX + 0x2c]
ADD EAX,0x1
ADD EDX,0x4
MOV dword ptr [EBX + 0x2c],EAX
MOV dword ptr [EDX + -0x4],EAX
MOVZX EDI,word ptr [ECX + 0x34]
ADD EAX,EDI
MOV dword ptr [EBX + 0x2c],EAX
MOV ECX,dword ptr [ECX + 0x14]
CMP ESI,EDX
JNZ 0x000f4552
JMP 0x000f3cea
MOV EAX,0xff0bdc00
MOV dword ptr [ESP + 0x58],0xfff0bdc0
JMP 0x000f363b
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [EAX + 0x38]
TEST EDI,EDI
JNZ 0x000f4b08
MOV ESI,dword ptr [ESP + 0x4c]
TEST ESI,ESI
JS 0x000f4ad4
CMP byte ptr [ESP + 0x53],0x0
JNZ 0x000f4ab0
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000f4a53
MOV ECX,dword ptr [ESP + 0x1c]
SUB ESP,0xc
ADD ECX,dword ptr [ESP + 0x58]
MOV EDX,0x4e
PUSH dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [EAX + 0x38]
TEST ECX,ECX
JNZ 0x000f4a29
SUB ESP,0xc
MOV EDX,0x33
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x58]
MOV ESI,dword ptr [ESP + 0x70]
MOV EAX,EDI
MOV ECX,ESI
CALL 0x00073150
MOV EBX,EAX
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x7c]
PUSH ESI
MOV EDX,0x79
MOV EAX,EDI
MOV ECX,dword ptr [ESP + 0xac]
CALL 0x00072f80
MOV EDX,dword ptr [EDI + 0x68]
ADD ESP,0x10
TEST EBX,EBX
JNS 0x000f4629
LEA EBX,[EDX + -0x1]
MOV EDI,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [EDI]
LEA EAX,[EAX + 0x1b94]
CMP byte ptr [ECX + 0x4d],0x0
JNZ 0x000f4647
IMUL EBX,EBX,0x18
MOV EAX,dword ptr [EDI + 0x64]
ADD EAX,EBX
MOV dword ptr [EAX + 0x8],EDX
SUB ESP,0xc
MOV EDX,0xf
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
MOV dword ptr [ESP + 0x54],0x0
MOV ECX,dword ptr [ESP + 0x74]
TEST ECX,ECX
JLE 0x000f468f
MOV EAX,dword ptr [ESP + 0x28]
SUB ESP,0xc
MOV EDX,0x97
MOV EAX,dword ptr [EAX + 0x8]
PUSH dword ptr [ESP + 0x6c]
CALL 0x00073150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
CMP word ptr [EAX + 0x2a],0x0
JLE 0x000f483a
MOV EBX,EAX
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x58],0x0
TEST ECX,ECX
LEA ESI,[EAX + 0xffe8a9d8]
LEA EAX,[EAX + 0xffe82068]
SETZ byte ptr [ESP + 0x5c]
XOR EDI,EDI
MOV dword ptr [ESP + 0x60],ESI
MOV dword ptr [ESP + 0x6c],EAX
JMP 0x000f4765
MOV EDX,EDI
SHL EDX,0x4
ADD EDX,dword ptr [EBX + 0x4]
TEST byte ptr [EDX + 0xf],0x2
JZ 0x000f4807
ADD dword ptr [ESP + 0x58],0x1
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [EDX + 0x4]
CMP byte ptr [EAX + 0x17],0x0
JZ 0x000f474b
MOV EAX,dword ptr [ESP + 0x60]
MOV byte ptr [ESP + 0xf0],0x2
MOV dword ptr [ESP + 0xf4],0x0
MOV dword ptr [ESP + 0xe0],EAX
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0xe4],EAX
TEST ESI,ESI
JZ 0x000f48ed
LEA EAX,[ESP + 0xdc]
MOV EDX,ESI
MOV dword ptr [ESP + 0x74],ECX
CALL 0x0005c830
CMP byte ptr [ESP + 0xf0],0x0
MOV ECX,dword ptr [ESP + 0x74]
JNZ 0x000f48ed
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,ESI
CALL 0x000cb850
MOVSX EAX,word ptr [EBX + 0x2a]
ADD EDI,0x1
CMP EAX,EDI
JLE 0x000f483a
MOV EAX,dword ptr [ESP + 0x64]
LEA ECX,[EAX + EDI*0x1]
MOVSX EAX,word ptr [EBX + 0x28]
CMP EAX,EDI
JZ 0x000f481f
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f46d2
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JLE 0x000f47ad
MOV ESI,dword ptr [EAX]
XOR EAX,EAX
CMP dword ptr [ESI + 0x4],EDI
JNZ 0x000f47a6
JMP 0x000f47ba
CMP dword ptr [ESI + EAX*0x8 + 0x4],EDI
JZ 0x000f47ba
ADD EAX,0x1
CMP EAX,EDX
JNZ 0x000f47a0
MOV EDX,EDI
SHL EDX,0x4
ADD EDX,dword ptr [EBX + 0x4]
JMP 0x000f46e9
MOV EDX,dword ptr [ESP + 0x18]
TEST EDX,EDX
JZ 0x000f47ad
CMP byte ptr [ESP + 0x53],0x0
JNZ 0x000f49ce
MOV EDX,dword ptr [ESP + 0x34]
TEST EDX,EDX
JZ 0x000f49b5
MOV ESI,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x64]
CMP ESI,EDX
JZ 0x000f4756
SUB ESP,0xc
ADD EAX,ESI
MOV EDX,0x4f
PUSH ECX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f4756
MOV EAX,EDI
SUB EAX,dword ptr [ESP + 0x58]
JS 0x000f46e9
CMP byte ptr [ESP + 0x5c],0x0
JZ 0x000f47c2
JMP 0x000f46e9
SUB ESP,0xc
MOV EDX,0x4a
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f4756
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [EAX + 0x38]
TEST EBX,EBX
JZ 0x000f48fd
MOV EBX,dword ptr [EAX + 0x40]
TEST EBX,EBX
JNZ 0x000f485f
JMP 0x000f4867
MOV EBX,dword ptr [EBX + 0x18]
TEST EBX,EBX
JZ 0x000f4867
MOV EAX,dword ptr [ESP + 0xc]
CMP EAX,dword ptr [EBX]
JNZ 0x000f4858
MOV EDI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,EDI
CALL 0x0009a0c0
SUB ESP,0x8
MOV ECX,0x1
MOV EDX,0xa
PUSH dword ptr [ESP + 0x78]
MOVSX EAX,word ptr [EDI + 0x2a]
ADD EAX,0x2
PUSH EAX
MOV ESI,dword ptr [ESP + 0x58]
MOV EAX,ESI
CALL 0x00072f80
MOV ECX,EBX
MOV dword ptr [ESP],0xfffffff4
MOV EDX,EAX
MOV EAX,ESI
CALL 0x00062750
ADD ESP,0x10
MOV EAX,0x2
MOVZX EDX,word ptr [ESP + 0x194]
CMP dword ptr [ESP + 0x194],0xb
CMOVZ EDX,EAX
MOV EAX,dword ptr [ESI + 0x68]
TEST EAX,EAX
JLE 0x000f48d8
IMUL EAX,EAX,0x18
ADD EAX,dword ptr [ESI + 0x64]
MOV word ptr [EAX + -0x16],DX
MOV EBX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EBX + 0x74]
TEST EAX,EAX
CMOVZ EAX,EBX
MOV byte ptr [EAX + 0x15],0x1
JMP 0x000f3dfd
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,ESI
CALL 0x00087b20
JMP 0x000f4756
PUSH EDI
PUSH EDI
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
LEA EAX,[ESP + 0xec]
PUSH EAX
PUSH dword ptr [ESP + 0x54]
MOVZX EAX,byte ptr [ESP + 0x1ac]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x68]
NOT EAX
SHR EAX,0x1f
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0xc8]
PUSH dword ptr [ESP + 0xc8]
MOV ESI,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x54]
MOV EDX,ESI
MOV EAX,EDI
CALL 0x000efeb0
ADD ESP,0x2c
XOR ECX,ECX
MOV EDX,ESI
PUSH 0x0
MOV EAX,EDI
PUSH 0x0
PUSH dword ptr [ESP + 0x7c]
CALL 0x000ec820
ADD ESP,0x10
CMP dword ptr [ESP + 0xdc],0x0
JZ 0x000f4a1f
CMP dword ptr [ESP + 0x68],0x0
JZ 0x000f49ed
PUSH ESI
PUSH ESI
PUSH EBX
PUSH dword ptr [ESP + 0x60]
PUSH 0x0
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x88]
PUSH dword ptr [ESP + 0xbc]
MOV ECX,dword ptr [ESP + 0xbc]
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x48]
CALL 0x00073740
ADD ESP,0x20
JMP 0x000f3dfd
IMUL EAX,EAX,0x14
MOV ESI,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESI + EAX*0x1 + 0x4]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000cb850
JMP 0x000f4756
SUB ESP,0x8
MOV EDX,0x5a
PUSH ECX
PUSH EAX
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00072f80
ADD ESP,0x10
JMP 0x000f4756
MOV EAX,dword ptr [ESP + 0xc]
MOV EBX,0x1
TEST byte ptr [EAX + 0x1d],0x40
JZ 0x000f497e
MOV EDI,dword ptr [ESP + 0x10]
XOR EBX,EBX
MOV EAX,dword ptr [EDI + 0x48]
MOV EDX,dword ptr [EDI]
MOV dword ptr [ESP + 0x18],EAX
ADD EAX,0x38
CALL 0x00049430
CMP dword ptr [EAX + 0x8],0x0
SETZ BL
JMP 0x000f497e
MOV EBX,0x1
JMP 0x000f497e
SUB ESP,0xc
MOV EDX,0x32
MOV EDI,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [EDI + 0x68]
MOV dword ptr [ESP + 0x60],EAX
ADD EAX,0x2
PUSH EAX
MOV ECX,dword ptr [ESP + 0x70]
MOV EAX,EDI
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f464a
IMUL EAX,dword ptr [ESP + 0x4c],0x14
MOV EDI,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [EDI + EAX*0x1 + 0x4]
CMP byte ptr [EDX],0x6e
JNZ 0x000f4a6f
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x38],0x0
JZ 0x000f4a81
MOV ECX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000cb850
JMP 0x000f45d6
PUSH EBX
MOV EDX,0x79
PUSH EBX
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x6c]
MOV ECX,dword ptr [ESP + 0xac]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00072f80
ADD ESP,0x10
MOV dword ptr [ESP + 0x54],0x1
JMP 0x000f466c
PUSH EBX
MOV EDX,0x5a
PUSH EBX
PUSH dword ptr [ESP + 0x68]
PUSH dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00072f80
ADD ESP,0x10
JMP 0x000f45d6
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x78]
OR EDI,dword ptr [EAX + 0x38]
JZ 0x000f4a81
SUB ESP,0xc
XOR ECX,ECX
MOV EDX,0x49
PUSH dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
MOV dword ptr [ESP + 0x54],0x0
JMP 0x000f466c
SUB ESP,0xc
XOR ECX,ECX
MOV EDX,0x49
PUSH dword ptr [ESP + 0x7c]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f4594
MOV EAX,dword ptr [ESP + 0x10]
MOVSX EDX,word ptr [EAX + 0x2a]
MOV EAX,dword ptr [ESP + 0x28]
ADD EDX,0x1
CALL 0x00045e40
MOV ESI,dword ptr [ESP + 0x4c]
MOV EDI,EAX
TEST ESI,ESI
JS 0x000f4df0
CMP byte ptr [ESP + 0x53],0x0
JZ 0x000f4dd3
PUSH EBX
MOV EDX,0x5a
PUSH EBX
PUSH EAX
PUSH dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00072f80
ADD ESP,0x10
SUB ESP,0xc
MOV ECX,EDI
MOV EDX,0x33
PUSH 0x0
MOV ESI,dword ptr [ESP + 0x58]
MOV EAX,ESI
CALL 0x00073150
MOV ECX,0xffffffff
MOV EDX,0x46
MOV dword ptr [ESP],EDI
MOV EBX,EAX
MOV EAX,ESI
CALL 0x00073150
MOV EDX,dword ptr [ESI + 0x68]
ADD ESP,0x10
MOV ECX,dword ptr [ESI]
TEST EBX,EBX
LEA EAX,[EDX + -0x1]
CMOVS EBX,EAX
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f4bc5
IMUL EBX,EBX,0x18
MOV EAX,dword ptr [ESI + 0x64]
ADD EAX,EBX
SUB ESP,0xc
MOV dword ptr [EAX + 0x8],EDX
MOV ECX,EDI
MOV EDX,0xf
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOVSX EAX,word ptr [EAX + 0x2a]
TEST AX,AX
JLE 0x000f4d3c
MOVZX EDX,byte ptr [ESP + 0x53]
MOV ECX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x8c],EDI
MOV dword ptr [ESP + 0x88],EBP
XOR EDX,0x1
TEST ECX,ECX
SETZ AL
XOR EBX,EBX
XOR ESI,ESI
AND EDX,EAX
LEA EAX,[EDI + 0x1]
MOV EDI,EBX
MOV byte ptr [ESP + 0x54],DL
MOV dword ptr [ESP + 0x5c],EAX
JMP 0x000f4c66
CMP byte ptr [ESP + 0x54],0x0
JZ 0x000f4c96
MOV EAX,dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x10]
LEA ECX,[EAX + EDI*0x1]
MOV EAX,EDI
SHL EAX,0x4
ADD EAX,dword ptr [EBX + 0x4]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000cb850
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [ESP + 0x30],0x1
ADC ESI,0x0
ADD EDI,0x1
MOVSX EAX,word ptr [EAX + 0x2a]
CMP EAX,EDI
JLE 0x000f4d2e
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x000f4c25
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JLE 0x000f4da1
MOV EAX,dword ptr [EAX]
XOR ESI,ESI
CMP EDI,dword ptr [EAX + 0x4]
JZ 0x000f4c8f
ADD ESI,0x1
CMP ESI,EDX
JZ 0x000f4c2c
CMP dword ptr [EAX + ESI*0x8 + 0x4],EDI
JNZ 0x000f4c82
CMP byte ptr [ESP + 0x54],0x0
JNZ 0x000f4c2c
MOV EAX,dword ptr [ESP + 0x5c]
CMP byte ptr [ESP + 0x53],0x0
LEA EBX,[EAX + EDI*0x1]
MOV dword ptr [ESP + 0x58],EBX
JZ 0x000f4cc4
SUB ESP,0x8
MOV EDX,0x5a
PUSH EBX
PUSH ESI
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00072f80
ADD ESP,0x10
JMP 0x000f4c4b
MOV EBP,dword ptr [ESP + 0x28]
MOV ECX,EBX
MOV EBX,dword ptr [ESP + 0x44]
LEA EAX,[ESI + ESI*0x4]
MOV EBX,dword ptr [EBX + EAX*0x4 + 0x4]
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,EBX
MOV dword ptr [ESP + 0x80],EAX
MOV EAX,EBP
CALL 0x000cb850
MOV EDX,EBP
MOV EBP,dword ptr [EBP + 0x2c]
SUB ESP,0xc
MOV dword ptr [ESP + 0x90],EBP
ADD EBP,0x1
MOV dword ptr [EDX + 0x2c],EBP
MOV EDX,0x4e
PUSH EBP
MOV ECX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x90]
CALL 0x00073150
MOVZX EAX,byte ptr [EBX]
MOV dword ptr [EBX + 0x1c],EBP
ADD ESP,0x10
MOV byte ptr [EBX],0xa4
MOV byte ptr [EBX + 0x28],AL
AND dword ptr [EBX + 0x4],0xffffefff
JMP 0x000f4c4b
MOV EBP,dword ptr [ESP + 0x88]
MOV EDI,dword ptr [ESP + 0x8c]
MOV EDX,dword ptr [ESP + 0x6c]
TEST EDX,EDX
JZ 0x000f4db8
MOV ESI,EDI
SUB ESP,0x8
MOV ECX,0x74
SUB ESI,EAX
PUSH dword ptr [ESP + 0x48]
MOV EAX,ESI
PUSH dword ptr [ESP + 0x1a0]
SUB EAX,0x1
PUSH EAX
MOV EBX,dword ptr [ESP + 0x24]
PUSH EBX
PUSH 0x1
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x48]
MOV EDX,dword ptr [ESP + 0x88]
CALL 0x000ef6e0
MOVSX EAX,word ptr [EBX + 0x2a]
ADD ESP,0x20
ADD EAX,0x1
CMP EAX,0x1
JZ 0x000f4da8
MOV ESI,dword ptr [ESP + 0x28]
CMP EAX,dword ptr [ESI + 0x1c]
JLE 0x000f3df1
MOV dword ptr [ESI + 0x1c],EAX
MOV dword ptr [ESI + 0x20],EDI
JMP 0x000f3df1
XOR ESI,ESI
JMP 0x000f4c2c
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,EDI
CALL 0x0004b0a0
JMP 0x000f3df1
MOV ESI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x48]
LEA ECX,[EDI + 0x1]
MOV EDX,ESI
CALL 0x00073230
MOVSX EAX,word ptr [ESI + 0x2a]
JMP 0x000f4d44
IMUL EAX,dword ptr [ESP + 0x4c],0x14
MOV EBX,dword ptr [ESP + 0x44]
MOV ECX,EDI
MOV EDX,dword ptr [EBX + EAX*0x1 + 0x4]
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x000cb850
JMP 0x000f4b70
SUB ESP,0xc
OR ECX,0xffffffff
MOV EDX,0x46
PUSH EAX
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f4be0
MOV dword ptr [ESP + 0x2c],0x0
XOR EBP,EBP
JMP 0x000f3dd2
SUB ESP,0xc
MOV EDX,0x24
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,EDI
CALL 0x00073150
MOV EBP,EAX
MOV EAX,dword ptr [EDI + 0x68]
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
JMP 0x000f3dd2
SUB ESP,0xc
MOV EDX,0x5
PUSH dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,ESI
CALL 0x00073150
MOV EDX,dword ptr [ESI + 0x68]
ADD ESP,0x10
MOV ECX,dword ptr [ESI]
TEST EBP,EBP
LEA EAX,[EDX + -0x1]
CMOVS EBP,EAX
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f4e87
IMUL EAX,EBP,0x18
ADD EAX,dword ptr [ESI + 0x64]
SUB ESP,0xc
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,0x75
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f3ead
SUB ESP,0xc
MOV EDX,0x53
PUSH 0x1
MOV ECX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f3e09
MOV EDI,dword ptr [EDI + 0x2c]
MOV EAX,dword ptr [ESP + 0x28]
ADD EDI,0x1
MOV dword ptr [EAX + 0x2c],EDI
JMP 0x000f3b5b
XOR ECX,ECX
JMP 0x000f3c99
MOV EBP,dword ptr [EAX + 0x70]
TEST EBP,EBP
JZ 0x000f3ec2
CALL 0x000916b0
JMP 0x000f3ec2
TEST EDX,EDX
JNZ 0x000f380e
JMP 0x000f442c
PUSH EBP
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x44]
LEA EAX,[EAX + 0xfffb048c]
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x000886b0
MOV EDX,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x000638a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
CMP dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x10],EAX
JNZ 0x000f3688
JMP 0x000f36b0
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,EBP
CALL 0x00089330
TEST EAX,EAX
JNZ 0x000f3d98
MOV EAX,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x18]
MOV EDI,dword ptr [EDI]
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x40],EDI
MOV dword ptr [ESP + 0x54],EAX
TEST byte ptr [EDX + 0x24],0x20
JNZ 0x000f4f8d
CMP dword ptr [EDI],0x1
JZ 0x000f5107
LEA EDI,[ESP + 0xfc]
XOR EAX,EAX
MOV ECX,0x1c
MOV dword ptr [ESP + 0x5c],EDI
STOSD.REP ES:EDI
LEA EAX,[ESP + 0x134]
MOV byte ptr [ESP + 0x134],0x9e
MOV dword ptr [ESP + 0x108],EAX
MOV dword ptr [ESP + 0x84],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV byte ptr [ESP + 0xfc],0x66
MOV dword ptr [ESP + 0x150],EAX
MOV EBP,dword ptr [EDX + 0x8]
TEST EBP,EBP
JNZ 0x000f4feb
JMP 0x000f50e9
MOV EBP,dword ptr [EBP + 0x14]
TEST EBP,EBP
JZ 0x000f50e9
CMP byte ptr [EBP + 0x36],0x0
JZ 0x000f4fe0
MOV EAX,dword ptr [ESP + 0x40]
MOVZX ESI,word ptr [EBP + 0x32]
CMP dword ptr [EAX],ESI
JNZ 0x000f4fe0
MOV ECX,dword ptr [EBP + 0x24]
TEST ECX,ECX
JZ 0x000f502a
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x000f4fe0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x000872a0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000f4fe0
MOVZX ESI,word ptr [EBP + 0x32]
TEST ESI,ESI
JZ 0x000f50dd
MOV EAX,dword ptr [ESP + 0x40]
XOR EDI,EDI
ADD EAX,0x4
MOV dword ptr [ESP + 0x80],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [EAX + EDI*0x4]
MOV dword ptr [ESP + 0x104],EAX
MOV EAX,dword ptr [EBP + 0x4]
CMP word ptr [EAX + EDI*0x2],-0x2
JZ 0x000f5128
MOV EAX,dword ptr [ESP + 0x84]
MOV EBX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x108],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOVSX EAX,word ptr [EAX + EDI*0x2]
MOV dword ptr [ESP + 0x154],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x58],EAX
JMP 0x000f50a8
ADD dword ptr [ESP + 0x2c],0x1
MOV EAX,dword ptr [ESP + 0x2c]
ADD dword ptr [ESP + 0x58],0x14
CMP ESI,EAX
JZ 0x000f4fe0
SUB ESP,0xc
MOV ECX,EBX
PUSH dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x68]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x000872a0
ADD ESP,0x10
CMP EAX,0x1
JG 0x000f5092
CMP ESI,dword ptr [ESP + 0x2c]
JLE 0x000f4fe0
ADD EDI,0x1
CMP ESI,EDI
JNZ 0x000f5042
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX + 0x10],EBP
JMP 0x000f3d98
PUSH ECX
PUSH ECX
MOV EAX,dword ptr [ESP + 0x44]
LEA EAX,[EAX + 0xfffb04bc]
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x000886b0
ADD ESP,0x10
JMP 0x000f3d98
MOV EAX,dword ptr [EDI + 0x4]
CMP byte ptr [EAX],0x9e
JNZ 0x000f4f8d
CMP dword ptr [EAX + 0x20],-0x1
JNZ 0x000f4f8d
JMP 0x000f3d98
MOV EDX,dword ptr [EBP + 0x28]
LEA EAX,[EDI + EDI*0x4]
LEA EAX,[EDX + EAX*0x4]
MOV EBX,dword ptr [EAX + 0x4]
CMP byte ptr [EBX],0x66
JZ 0x000f507d
MOV dword ptr [ESP + 0x108],EBX
MOV EBX,dword ptr [ESP + 0x5c]
JMP 0x000f507d
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x1c],0x0
MOV EBP,0x1
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x000f51a8
MOV EAX,dword ptr [ESP + 0x1c]
CMP byte ptr [ESI + 0x36],0x0
MOV EBX,dword ptr [EDI + 0x8]
CMOVNZ EAX,EBP
MOV dword ptr [ESP + 0x1c],EAX
TEST EBX,EBX
JZ 0x000f380e
MOVZX EAX,word ptr [EBX + 0x32]
CMP word ptr [ESI + 0x32],AX
JNZ 0x000f51a3
MOVZX EAX,byte ptr [EBX + 0x36]
CMP byte ptr [ESI + 0x36],AL
JNZ 0x000f51a3
MOV EDX,EBX
MOV EAX,ESI
CALL 0x00087c20
TEST EAX,EAX
JNZ 0x000f5af6
MOV EBX,dword ptr [EBX + 0x14]
JMP 0x000f5177
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
JZ 0x000f51c6
MOV EAX,dword ptr [EDI + 0x18]
OR ECX,0xffffffff
CALL 0x000879d0
TEST EAX,EAX
JNZ 0x000f380e
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x1c]
TEST AH,0x40
JZ 0x000f51e0
MOV ESI,dword ptr [ESP + 0x10]
CMP dword ptr [ESI + 0x10],0x0
JNZ 0x000f380e
TEST AL,0x80
JNZ 0x000f380e
MOV EDX,dword ptr [EDI + 0x48]
TEST EDX,EDX
JZ 0x000f5944
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00046080
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [EAX + 0x8]
TEST EBP,EBP
JNZ 0x000f5212
CALL 0x00073350
MOV EBP,EAX
MOV ESI,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x4c]
MOV EAX,ESI
CALL 0x000bca90
MOV EAX,dword ptr [ESI + 0x28]
MOV dword ptr [ESP + 0x60],0x0
MOV dword ptr [ESP + 0x18],EAX
ADD EAX,0x2
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x10]
TEST byte ptr [EAX + 0x24],0x8
JZ 0x000f5251
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,EAX
MOV EAX,ESI
CALL 0x00055fd0
MOV dword ptr [ESP + 0x60],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOVZX EAX,byte ptr [EAX + 0x13]
TEST AL,AL
JZ 0x000f5913
LEA EDX,[EAX + -0x1]
MOV ESI,dword ptr [ESP + 0x28]
MOVZX ECX,DL
MOV byte ptr [ESI + 0x13],DL
MOV ESI,dword ptr [ESI + ECX*0x4 + 0x90]
MOV dword ptr [ESP + 0x24],ESI
TEST DL,DL
JZ 0x000f592a
MOV ESI,dword ptr [ESP + 0x28]
SUB EAX,0x2
MOV byte ptr [ESI + 0x13],AL
MOVZX EAX,AL
MOV EAX,dword ptr [ESI + EAX*0x4 + 0x90]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD EAX,0x1
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,EAX
PUSH EBX
PUSH EBX
PUSH 0x6e
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
MOV ECX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x00090f40
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
TEST byte ptr [EAX + 0x18],0x4
JNZ 0x000f5906
CMP word ptr [ESI + 0x28],0x0
JS 0x000f58f7
CMP dword ptr [ESP + 0x1c],0x0
JNZ 0x000f52eb
MOV EAX,dword ptr [ESP + 0x40]
SUB EAX,0x1
CMP EAX,0x1
JBE 0x000f5346
SUB ESP,0xc
MOV EDX,0x24
MOV EAX,EBP
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
MOV EDX,0xb
XOR ECX,ECX
MOV dword ptr [ESP],0x0
MOV EBX,EAX
MOV EAX,EBP
CALL 0x00073150
MOV EDX,dword ptr [EBP + 0x68]
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
TEST EBX,EBX
JNS 0x000f5328
LEA EBX,[EDX + -0x1]
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f5343
IMUL EBX,EBX,0x18
MOV EAX,dword ptr [EBP + 0x64]
ADD EAX,EBX
MOV dword ptr [EAX + 0x8],EDX
TEST byte ptr [EDI + 0x24],0x20
JNZ 0x000f58b7
PUSH ECX
PUSH ECX
PUSH 0x6d
PUSH EDI
MOV EBX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x38]
MOV EDX,EBX
CALL 0x00090f40
MOV ECX,EBX
MOV EDX,0x24
MOV EAX,EBP
MOV dword ptr [ESP],0x0
CALL 0x00073150
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x10]
CMP word ptr [ESI + 0x28],0x0
JNS 0x000f5820
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x8],0x0
JZ 0x000f54db
SUB ESP,0xc
MOV EDX,0x80
MOV EAX,EBP
PUSH dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x28]
CALL 0x00073150
ADD ESP,0x10
MOV EBX,EAX
PUSH EAX
MOV EDX,0x7f
MOV ESI,0x29
PUSH EAX
MOV EAX,EBP
PUSH 0x1
PUSH dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESP + 0x28]
CALL 0x00072f80
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
TEST byte ptr [EAX + 0x18],0x4
JZ 0x000f5404
SUB ESP,0xc
MOV EDX,0x82
MOV EAX,EBP
MOV ESI,0x39
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
ADD ESP,0x10
PUSH EAX
MOV EDX,0x7a
PUSH EAX
MOV EAX,EBP
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00072f80
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP],0xfffffffa
MOV EDX,EAX
MOV EAX,EBP
CALL 0x00062750
MOV EAX,dword ptr [EBP + 0x68]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x000f544b
MOV ECX,ESI
IMUL EAX,EAX,0x18
ADD EAX,dword ptr [EBP + 0x64]
MOVZX ESI,CL
MOV word ptr [EAX + -0x16],SI
SUB ESP,0xc
MOV EDX,0x5
MOV EAX,EBP
PUSH EBX
MOV EBX,dword ptr [ESP + 0x28]
MOV ECX,EBX
CALL 0x00073150
MOV ECX,EBX
MOV EDX,0x75
MOV EAX,EBP
MOV dword ptr [ESP],0x0
CALL 0x00073150
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x75
MOV EAX,EBP
MOV dword ptr [ESP],0x0
CALL 0x00073150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x64],EDI
MOV EBX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x3c]
LEA ESI,[EAX + 0xfffa06f9]
LEA EAX,[EAX + 0xfffae7e8]
MOV EDI,EBX
MOV dword ptr [ESP + 0x60],ESI
MOV dword ptr [ESP + 0x74],EAX
TEST EDI,EDI
JZ 0x000f56d8
MOV EAX,dword ptr [ESP + 0x64]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x000f5afe
MOVZX EAX,word ptr [ESI + 0x32]
CMP word ptr [EDI + 0x32],AX
JZ 0x000f54fc
MOV ESI,dword ptr [ESI + 0x14]
JMP 0x000f54c4
SUB ESP,0xc
MOV EDX,0x79
MOV EAX,EBP
PUSH dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
ADD ESP,0x10
MOV EBX,EAX
JMP 0x000f53bd
MOVZX EAX,byte ptr [ESI + 0x36]
CMP byte ptr [EDI + 0x36],AL
JNZ 0x000f54d6
MOV EDX,ESI
MOV EAX,EDI
CALL 0x00087c20
TEST EAX,EAX
JZ 0x000f54d6
PUSH ECX
MOV EDX,0x6d
MOV EAX,EBP
PUSH ECX
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESI + 0x2c]
MOV ECX,dword ptr [ESP + 0x28]
CALL 0x00072f80
MOV EBX,dword ptr [ESP + 0x38]
MOV EDX,ESI
MOV EAX,EBX
CALL 0x00090ee0
ADD ESP,0xc
PUSH dword ptr [ESI]
PUSH dword ptr [ESP + 0x68]
PUSH EBP
CALL 0x0007e240
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x60]
PUSH dword ptr [EDI + 0x2c]
MOV EDX,0x6e
MOV EAX,EBP
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00072f80
MOV EAX,EBX
MOV EDX,EDI
CALL 0x00090ee0
MOV EAX,dword ptr [EBP + 0x68]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x000f557f
IMUL EAX,EAX,0x18
ADD EAX,dword ptr [EBP + 0x64]
MOV word ptr [EAX + -0x16],0x1
PUSH ECX
PUSH dword ptr [EDI]
PUSH dword ptr [ESP + 0x68]
PUSH EBP
CALL 0x0007e240
MOV EBX,dword ptr [ESP + 0x28]
MOV EDX,0x24
MOV EAX,EBP
MOV dword ptr [ESP],0x0
MOV ECX,EBX
CALL 0x00073150
MOV ECX,EBX
XOR EBX,EBX
MOV dword ptr [ESP + 0x50],EAX
POP EAX
MOV EAX,EBP
POP EDX
PUSH 0x1
MOV EDX,0x7f
PUSH dword ptr [ESP + 0x30]
CALL 0x00072f80
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
TEST byte ptr [EAX + 0x18],0x4
JNZ 0x000f56a0
MOV EAX,dword ptr [ESP + 0x64]
TEST byte ptr [EAX + 0x24],0x20
JZ 0x000f55ea
MOVZX EAX,byte ptr [EDI + 0x37]
AND EAX,0x3
CMP AL,0x2
JNZ 0x000f55ea
OR EBX,0x1
SUB ESP,0xc
MOV EDX,0x84
MOV EAX,EBP
PUSH dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
MOV EAX,dword ptr [EBP + 0x68]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x000f561f
IMUL EAX,EAX,0x18
ADD EAX,dword ptr [EBP + 0x64]
MOV EDX,EAX
MOV EAX,EBX
OR EAX,0x8
MOVZX EAX,AL
MOV word ptr [EDX + -0x16],AX
SUB ESP,0xc
MOV EDX,0x5
MOV EBX,dword ptr [ESP + 0x4c]
LEA EAX,[EBX + 0x1]
PUSH EAX
MOV ECX,dword ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x00073150
MOV EDX,dword ptr [EBP + 0x68]
ADD ESP,0x10
TEST EBX,EBX
JNS 0x000f564b
LEA EAX,[EDX + -0x1]
MOV dword ptr [ESP + 0x40],EAX
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f5666
IMUL EAX,dword ptr [ESP + 0x40],0x18
ADD EAX,dword ptr [EBP + 0x64]
SUB ESP,0xc
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,0x75
MOV EAX,EBP
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x28]
CALL 0x00073150
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x75
MOV EAX,EBP
MOV dword ptr [ESP],0x0
CALL 0x00073150
MOV EDI,dword ptr [EDI + 0x14]
ADD ESP,0x10
JMP 0x000f54b5
MOVZX EAX,word ptr [ESI + 0x34]
XOR EBX,EBX
MOV dword ptr [ESP + 0x70],EAX
CMP EBX,dword ptr [ESP + 0x70]
JGE 0x000f57f3
MOV EAX,dword ptr [ESI + 0x20]
MOV EDX,dword ptr [EAX + EBX*0x4]
TEST EDX,EDX
JZ 0x000f57ec
MOV EAX,dword ptr [ESP + 0x74]
CALL 0x000446c0
TEST EAX,EAX
JNZ 0x000f57ec
ADD EBX,0x1
JMP 0x000f56aa
CMP dword ptr [ESP + 0x5c],0x0
JZ 0x000f5709
MOV EDX,dword ptr [EBP + 0x68]
JNS 0x000f56eb
LEA EAX,[EDX + -0x1]
MOV dword ptr [ESP + 0x5c],EAX
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f5706
IMUL EAX,dword ptr [ESP + 0x5c],0x18
ADD EAX,dword ptr [EBP + 0x64]
MOV dword ptr [EAX + 0x8],EDX
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x000f571c
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x00045e10
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x000f572f
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x00045e10
CMP dword ptr [ESP + 0x1c],0x0
JZ 0x000f57a7
MOV EAX,dword ptr [ESP + 0x28]
CMP dword ptr [EAX + 0x70],0x0
JZ 0x000f5745
CALL 0x000916b0
SUB ESP,0xc
XOR ECX,ECX
MOV EDX,0x45
MOV EAX,EBP
PUSH 0x0
CALL 0x00073150
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0x68]
CMP dword ptr [ESP + 0x1c],0x0
JNS 0x000f576c
LEA EAX,[EDX + -0x1]
MOV dword ptr [ESP + 0x1c],EAX
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f5787
IMUL EAX,dword ptr [ESP + 0x1c],0x18
ADD EAX,dword ptr [EBP + 0x64]
SUB ESP,0xc
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,0x75
MOV EAX,EBP
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f380e
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x10],0x0
CMP byte ptr [EAX + 0x12],0x0
JNZ 0x000f3673
CMP dword ptr [EAX + 0x78],0x0
JNZ 0x000f3673
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [EAX + 0x70]
MOV dword ptr [ESP + 0x10],EDI
TEST EDI,EDI
JZ 0x000f3673
CALL 0x000916b0
MOV dword ptr [ESP + 0x10],0x0
JMP 0x000f3673
XOR EBX,EBX
JMP 0x000f55d2
MOV EBX,0x0
JNZ 0x000f55d2
SUB ESP,0xc
MOV EDX,0x82
MOV EAX,EBP
MOV EBX,0x10
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f55d2
SUB ESP,0xc
MOV ECX,EBX
MOV EDX,0x80
MOV EAX,EBP
MOV ESI,dword ptr [ESP + 0x2c]
PUSH ESI
CALL 0x00073150
MOV EBX,EAX
POP EAX
POP EDX
PUSH ESI
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x1f
MOV EAX,EBP
CALL 0x00072f80
MOV EDX,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [ESP + 0x20]
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x00086c60
MOV EDX,dword ptr [EBP + 0x68]
ADD ESP,0x10
TEST ESI,ESI
JNS 0x000f586d
LEA ESI,[EDX + -0x1]
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [ECX + 0x4d],0x0
LEA EAX,[EAX + 0x1b94]
JNZ 0x000f5888
IMUL ESI,ESI,0x18
MOV EAX,dword ptr [EBP + 0x64]
ADD EAX,ESI
MOV ECX,dword ptr [ESP + 0x60]
MOV dword ptr [EAX + 0x8],EDX
TEST ECX,ECX
JLE 0x000f53bd
MOV EAX,dword ptr [ESP + 0x28]
SUB ESP,0xc
MOV EDX,0x97
MOV EAX,dword ptr [EAX + 0x8]
PUSH dword ptr [ESP + 0x2c]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f53bd
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [EAX + 0x1c]
PUSH EBX
PUSH EBX
PUSH dword ptr [EAX]
PUSH 0x1
MOV EBX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x68]
MOV EAX,EBX
CALL 0x00072d00
POP ESI
MOV ECX,dword ptr [EDI + 0x1c]
POP EAX
PUSH dword ptr [EDI]
MOV EAX,EBX
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x5c]
CALL 0x00072d00
ADD ESP,0x10
MOV dword ptr [ESP + 0x5c],0x0
JMP 0x000f5490
CMP dword ptr [ESI + 0x8],0x0
JNZ 0x000f52eb
JMP 0x000f52d8
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x000f5346
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [EAX + 0x2c]
MOV EBX,ESI
MOV dword ptr [ESP + 0x8],ESI
ADD EBX,0x1
MOV dword ptr [ESP + 0x24],EBX
MOV dword ptr [EAX + 0x2c],EBX
MOV EAX,dword ptr [ESP + 0x28]
MOV EBX,dword ptr [EAX + 0x2c]
MOV dword ptr [ESP + 0x8],EBX
LEA EBX,[EBX + 0x1]
MOV dword ptr [ESP + 0x20],EBX
MOV dword ptr [EAX + 0x2c],EBX
JMP 0x000f5299
MOV dword ptr [ESP + 0x4c],0xfff0bdc0
JMP 0x000f5200
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x40],0x2
CMP word ptr [EAX + 0x28],0x0
JS 0x000f42ec
MOVZX EAX,byte ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x40],EAX
CMP EAX,0xb
JNZ 0x000f42ec
MOV dword ptr [ESP + 0x40],0x2
JMP 0x000f42ec
CALL 0x00153870
CMP dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x1c],0x0
SETZ CL
TEST EBX,EBX
MOV dword ptr [ESP + 0x8],0xffffffff
SETNZ DL
AND ECX,EDX
MOV EBP,ECX
JMP 0x000f3c65
MOV EDI,EAX
MOV EAX,dword ptr [EAX + 0x2c]
SUB ESP,0xc
XOR ECX,ECX
MOV EDX,0x46
ADD EAX,0x1
MOV dword ptr [ESP + 0x2c],EAX
MOV dword ptr [EDI + 0x2c],EAX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x00073150
ADD ESP,0x10
JMP 0x000f3cd6
MOV EAX,dword ptr [EDI + 0x2c]
LEA ESI,[EAX + 0x1]
MOV dword ptr [ESP + 0x20],EAX
MOV EDI,ESI
JMP 0x000f4ecb
MOV EAX,dword ptr [ESP + 0x28]
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JNZ 0x000f59ff
CALL 0x00073350
MOV EBX,EAX
MOV ESI,dword ptr [ESP + 0x10]
XOR EAX,EAX
MOV EDI,dword ptr [EBX + 0x68]
CMP dword ptr [ESI + 0x38],0x0
JZ 0x000f5a2b
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESI + 0x40]
TEST EAX,EAX
JNZ 0x000f5a27
JMP 0x000f5a2b
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x000f5a2b
CMP EDX,dword ptr [EAX]
JNZ 0x000f5a20
MOV ESI,dword ptr [ESP + 0x18]
CMP dword ptr [ESP + 0x30],0x0
SETZ DL
TEST ESI,ESI
SETG CL
AND ECX,EDX
TEST ESI,ESI
MOV byte ptr [ESP + 0x20],CL
SETNZ CL
AND ECX,EDX
MOV EBP,ECX
CMP EDI,0x1
JLE 0x000f3c52
MOV EDX,dword ptr [EBX]
MOV ESI,0x1
MOVZX ECX,byte ptr [EDX + 0x4d]
MOV byte ptr [ESP + 0x24],CL
MOV ECX,dword ptr [ESP + 0x3c]
LEA ECX,[ECX + 0x1b94]
MOV dword ptr [ESP + 0x2c],ECX
JMP 0x000f5a91
CMP CL,0xa3
JNZ 0x000f5a86
CMP dword ptr [EDX + 0x10],EAX
JZ 0x000f3b16
ADD ESI,0x1
CMP EDI,ESI
JZ 0x000f3c52
CMP byte ptr [ESP + 0x24],0x0
MOV EDX,dword ptr [ESP + 0x2c]
JNZ 0x000f5aa5
MOV ECX,dword ptr [EBX + 0x64]
LEA EDX,[ESI + ESI*0x2]
LEA EDX,[ECX + EDX*0x8]
MOVZX ECX,byte ptr [EDX]
CMP CL,0x6d
JNZ 0x000f5a78
MOV ECX,dword ptr [ESP + 0x58]
CMP ECX,dword ptr [EDX + 0xc]
JNZ 0x000f5a86
MOV ECX,dword ptr [EDX + 0x8]
MOV EDX,dword ptr [ESP + 0x10]
CMP ECX,dword ptr [EDX + 0x1c]
JZ 0x000f3b16
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JNZ 0x000f5ad7
JMP 0x000f5a86
MOV EDX,dword ptr [EDX + 0x14]
TEST EDX,EDX
JZ 0x000f5a86
CMP ECX,dword ptr [EDX + 0x2c]
JNZ 0x000f5ad0
JMP 0x000f3b16
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x48]
CMP dword ptr [EDI + 0x48],EAX
JNZ 0x000f4381
JMP 0x000f380e
MOV ESI,dword ptr [ESI + 0x14]
JMP 0x000f5161
JMP 0x000157bf
(translation_unit "void FUN_000f3560(int *param_1,uint param_2,int *param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}\n\n" (function_definition "void FUN_000f3560(int *param_1,uint param_2,int *param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" primitive_type (function_declarator "FUN_000f3560(int *param_1,uint param_2,int *param_3)" identifier (parameter_list "(int *param_1,uint param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "short sVar4;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_05;" type_identifier identifier ;) (declaration "int extraout_ECX_06;" primitive_type identifier ;) (declaration "undefined2 uVar28;" type_identifier identifier ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "char *pcVar32;" primitive_type (pointer_declarator "*pcVar32" * identifier) ;) (declaration "ushort uVar33;" type_identifier identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "undefined4 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int *piVar37;" primitive_type (pointer_declarator "*piVar37" * identifier) ;) (declaration "undefined4 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "undefined8 uVar41;" type_identifier identifier ;) (declaration "undefined8 uVar42;" type_identifier identifier ;) (declaration "int *local_17c;" primitive_type (pointer_declarator "*local_17c" * identifier) ;) (declaration "byte *local_174;" type_identifier (pointer_declarator "*local_174" * identifier) ;) (declaration "uint local_170;" type_identifier identifier ;) (declaration "uint local_16c;" type_identifier identifier ;) (declaration "int *local_168;" primitive_type (pointer_declarator "*local_168" * identifier) ;) (declaration "uint local_160;" type_identifier identifier ;) (declaration "int *local_158;" primitive_type (pointer_declarator "*local_158" * identifier) ;) (declaration "uint local_14c;" type_identifier identifier ;) (declaration "int *local_148;" primitive_type (pointer_declarator "*local_148" * identifier) ;) (declaration "int *local_144;" primitive_type (pointer_declarator "*local_144" * identifier) ;) (declaration "uint local_140;" type_identifier identifier ;) (declaration "undefined4 local_138;" type_identifier identifier ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "uint local_130;" type_identifier identifier ;) (declaration "int local_12c;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "int local_110;" primitive_type identifier ;) (declaration "int local_f0;" primitive_type identifier ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "byte local_e8 [4];" type_identifier (array_declarator "local_e8 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "int *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined8 *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "int local_a8 [3];" primitive_type (array_declarator "local_a8 [3]" identifier [ number_literal ]) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "undefined1 local_90 [8];" type_identifier (array_declarator "local_90 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined1 local_58 [28];" type_identifier (array_declarator "local_58 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "uVar41 = FUN_0003a401();" (assignment_expression "uVar41 = FUN_0003a401()" identifier = (call_expression "FUN_0003a401()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar23 = (int)((ulonglong)uVar41 >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)uVar41 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar41 >> 0x20)" ( (binary_expression "(ulonglong)uVar41 >> 0x20" (cast_expression "(ulonglong)uVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar11 = (int *)uVar41;" (assignment_expression "piVar11 = (int *)uVar41" identifier = (cast_expression "(int *)uVar41" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (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 "iVar26 = *piVar11;" (assignment_expression "iVar26 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_158 = extraout_ECX;" (assignment_expression "local_158 = extraout_ECX" identifier = identifier) ;) (if_statement "if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" if (parenthesized_expression "((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0'))" ( (binary_expression "(piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')" (parenthesized_expression "(piVar11[9] == 0)" ( (binary_expression "piVar11[9] == 0" (subscript_expression "piVar11[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar26 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00153870();\n}" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (if_statement "if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" if (parenthesized_expression "(((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0))" ( (binary_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)" (parenthesized_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0))" ( (binary_expression "(extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" (parenthesized_expression "(extraout_ECX != (int *)0x0)" ( (binary_expression "extraout_ECX != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" ( (binary_expression "(*(byte *)((int)extraout_ECX + 9) & 2) != 0" (parenthesized_expression "(*(byte *)((int)extraout_ECX + 9) & 2)" ( (binary_expression "*(byte *)((int)extraout_ECX + 9) & 2" (pointer_expression "*(byte *)((int)extraout_ECX + 9)" * (cast_expression "(byte *)((int)extraout_ECX + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)extraout_ECX + 9)" ( (binary_expression "(int)extraout_ECX + 9" (cast_expression "(int)extraout_ECX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(extraout_ECX[0xd] == 0)" ( (binary_expression "extraout_ECX[0xd] == 0" (subscript_expression "extraout_ECX[0xd]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" { (expression_statement "local_148 = (int *)*extraout_ECX;" (assignment_expression "local_148 = (int *)*extraout_ECX" identifier = (cast_expression "(int *)*extraout_ECX" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*extraout_ECX" * identifier))) ;) (expression_statement "*extraout_ECX = 0;" (assignment_expression "*extraout_ECX = 0" (pointer_expression "*extraout_ECX" * identifier) = number_literal) ;) (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" identifier = (cast_expression "(int *)FUN_000ed210()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ed210()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_158 = piVar12;" (assignment_expression "local_158 = piVar12" identifier = identifier) ;) (if_statement "if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" { (expression_statement "local_158 = (int *)0x0;" (assignment_expression "local_158 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3620;" goto statement_identifier ;) })) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;) })) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" identifier = (cast_expression "(int *)FUN_000ed210()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ed210()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" { (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "local_148 = (int *)0x0;" (assignment_expression "local_148 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" statement_identifier : (if_statement "if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" if (parenthesized_expression "(piVar12[0x12] == 0)" ( (binary_expression "piVar12[0x12] == 0" (subscript_expression "piVar12[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }" { (expression_statement "iVar13 = -16000000;" (assignment_expression "iVar13 = -16000000" identifier = number_literal) ;) (expression_statement "local_134 = -1000000;" (assignment_expression "local_134 = -1000000" identifier = number_literal) ;) }) (else_clause "else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" else (compound_statement "{\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" { (expression_statement "local_134 = FUN_00046080();" (assignment_expression "local_134 = FUN_00046080()" identifier = (call_expression "FUN_00046080()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar13 = local_134 << 4;" (assignment_expression "iVar13 = local_134 << 4" identifier = (binary_expression "local_134 << 4" identifier << number_literal)) ;) })))) (expression_statement "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));" (assignment_expression "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" identifier = (call_expression "FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" identifier (argument_list "(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" ( number_literal , (pointer_expression "*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" * (cast_expression "(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar26 + 0x10) + iVar13)" ( (binary_expression "*(int *)(iVar26 + 0x10) + iVar13" (pointer_expression "*(int *)(iVar26 + 0x10)" * (cast_expression "(int *)(iVar26 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x10)" ( (binary_expression "iVar26 + 0x10" identifier + number_literal) )))) + identifier) )))) )))) ;) (if_statement "if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" { (labeled_statement "LAB_000f366b:\n      local_17c = (int *)0x0;" statement_identifier : (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "LAB_000f3673:\n      FUN_000638a0();" statement_identifier : (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }" if (parenthesized_expression "(local_148 != (int *)0x0)" ( (binary_expression "local_148 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3688:\n        FUN_00063e30();\n      }" { (labeled_statement "LAB_000f3688:\n        FUN_00063e30();" statement_identifier : (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;)) })) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "uVar6 = piVar12[9];" (assignment_expression "uVar6 = piVar12[9]" identifier = (subscript_expression "piVar12[9]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = FUN_00049a60(0,local_e8);" (assignment_expression "iVar14 = FUN_00049a60(0,local_e8)" identifier = (call_expression "FUN_00049a60(0,local_e8)" identifier (argument_list "(0,local_e8)" ( number_literal , identifier )))) ;) (expression_statement "iVar13 = piVar12[3];" (assignment_expression "iVar13 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = FUN_000d9b60();" (assignment_expression "iVar15 = FUN_000d9b60()" identifier = (call_expression "FUN_000d9b60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;" if (parenthesized_expression "(((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))))" ( (binary_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar15 = FUN_0008b7b0(), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0008b7b0(), iVar15 != 0" (assignment_expression "iVar15 = FUN_0008b7b0()" identifier = (call_expression "FUN_0008b7b0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" ( (parenthesized_expression "(local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))" ( (comma_expression "local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (assignment_expression "local_144 = (int *)piVar11[2]" identifier = (cast_expression "(int *)piVar11[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ]))) , (binary_expression "local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (binary_expression "local_144 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" ( (comma_expression "local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0" (assignment_expression "local_144 = (int *)FUN_00073350()" identifier = (cast_expression "(int *)FUN_00073350()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073350()" identifier (argument_list "()" ( ))))) , (binary_expression "local_144 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (if_statement "if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" { (expression_statement "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;" (assignment_expression "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" * (cast_expression "(byte *)((int)local_144 + 0x8d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_144 + 0x8d)" ( (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" * (cast_expression "(byte *)((int)local_144 + 0x8d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_144 + 0x8d)" ( (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "FUN_000bcbf0();" (call_expression "FUN_000bcbf0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0))))" ( (binary_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" (parenthesized_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0))" ( (binary_expression "(param_1 == (int *)0x0) && (local_158 != (int *)0x0)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" ( (parenthesized_expression "(piVar11[0x41] == 0 && (local_158[0x10] == 0))" ( (binary_expression "piVar11[0x41] == 0 && (local_158[0x10] == 0)" (binary_expression "piVar11[0x41] == 0" (subscript_expression "piVar11[0x41]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(local_158[0x10] == 0)" ( (binary_expression "local_158[0x10] == 0" (subscript_expression "local_158[0x10]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" { (expression_statement "iVar15 = *piVar11;" (assignment_expression "iVar15 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar16 = FUN_000460a0();" (assignment_expression "iVar16 = FUN_000460a0()" identifier = (call_expression "FUN_000460a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;" if (parenthesized_expression "((iVar16 != 0) || (piVar12[0xe] != 0))" ( (binary_expression "(iVar16 != 0) || (piVar12[0xe] != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) || (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "local_14c = param_2;" (assignment_expression "local_14c = param_2" identifier = identifier) ;) (if_statement "if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }" if (parenthesized_expression "((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))))" ( (binary_expression "(param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" (parenthesized_expression "(param_2 == 0xb)" ( (binary_expression "param_2 == 0xb" identifier == number_literal) )) && (parenthesized_expression "((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" ( (parenthesized_expression "(local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))" ( (comma_expression "local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (assignment_expression "local_14c = 2" identifier = number_literal) , (binary_expression "-1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (binary_expression "-1 < (short)piVar12[10]" number_literal < (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) && (parenthesized_expression "(local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" ( (comma_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb" (assignment_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc)" identifier = (binary_expression "(uint)*(byte *)(piVar12 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar12 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 0xc)" ( (binary_expression "piVar12 + 0xc" identifier + number_literal) ))))) , (binary_expression "local_14c == 0xb" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n        local_14c = 2;\n      }" { (expression_statement "local_14c = 2;" (assignment_expression "local_14c = 2" identifier = number_literal) ;) })) (if_statement "if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;" if (parenthesized_expression "((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))))" ( (binary_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" (parenthesized_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))))" ( (binary_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" (parenthesized_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))))" ( (binary_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" (parenthesized_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            )" ( (binary_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)" (parenthesized_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0))" ( (binary_expression "(*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)" (parenthesized_expression "(*(int *)local_158[8] != 1)" ( (binary_expression "*(int *)local_158[8] != 1" (pointer_expression "*(int *)local_158[8]" * (cast_expression "(int *)local_158[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_158[8]" identifier [ number_literal ]))) != number_literal) )) || (parenthesized_expression "(((int *)local_158[8])[7] != 0)" ( (binary_expression "((int *)local_158[8])[7] != 0" (subscript_expression "((int *)local_158[8])[7]" (parenthesized_expression "((int *)local_158[8])" ( (cast_expression "(int *)local_158[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_158[8]" identifier [ number_literal ])) )) [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(local_158[9] != 0)" ( (binary_expression "local_158[9] != 0" (subscript_expression "local_158[9]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" ( (parenthesized_expression "((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))" ( (binary_expression "(local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" (parenthesized_expression "(local_158[0xc] != 0 || (local_158[10] != 0))" ( (binary_expression "local_158[0xc] != 0 || (local_158[10] != 0)" (binary_expression "local_158[0xc] != 0" (subscript_expression "local_158[0xc]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(local_158[10] != 0)" ( (binary_expression "local_158[10] != 0" (subscript_expression "local_158[10]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" ( (parenthesized_expression "(local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))" ( (binary_expression "local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" (binary_expression "local_158[0xf] != 0" (subscript_expression "local_158[0xf]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" ( (parenthesized_expression "(local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))" ( (binary_expression "local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)" (binary_expression "local_158[0xd] != 0" (subscript_expression "local_158[0xd]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*(byte *)(local_158 + 2) & 1) != 0)" ( (binary_expression "(*(byte *)(local_158 + 2) & 1) != 0" (parenthesized_expression "(*(byte *)(local_158 + 2) & 1)" ( (binary_expression "*(byte *)(local_158 + 2) & 1" (pointer_expression "*(byte *)(local_158 + 2)" * (cast_expression "(byte *)(local_158 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_158 + 2)" ( (binary_expression "local_158 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) ))) )) || (parenthesized_expression "((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" ( (parenthesized_expression "(*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))" ( (binary_expression "*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" (binary_expression "*(int *)*local_158 != 1" (pointer_expression "*(int *)*local_158" * (cast_expression "(int *)*local_158" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_158" * identifier))) != number_literal) || (parenthesized_expression "((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" ( (parenthesized_expression "(*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))" ( (binary_expression "*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" (binary_expression "*(char *)((int *)*local_158)[1] != -0x58" (pointer_expression "*(char *)((int *)*local_158)[1]" * (cast_expression "(char *)((int *)*local_158)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)*local_158)[1]" (parenthesized_expression "((int *)*local_158)" ( (cast_expression "(int *)*local_158" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_158" * identifier)) )) [ number_literal ]))) != number_literal) || (parenthesized_expression "(puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" ( (comma_expression "puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0" (assignment_expression "puVar17 = (undefined4 *)FUN_000eb150()" identifier = (cast_expression "(undefined4 *)FUN_000eb150()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000eb150()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar17 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) || (parenthesized_expression "(((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" ( (parenthesized_expression "((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))" ( (binary_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" (parenthesized_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12]))" ( (binary_expression "puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])" (binary_expression "puVar17[7] == piVar12[7]" (subscript_expression "puVar17[7]" identifier [ number_literal ]) == (subscript_expression "piVar12[7]" identifier [ number_literal ])) && (parenthesized_expression "(puVar17[0x12] == piVar12[0x12])" ( (binary_expression "puVar17[0x12] == piVar12[0x12]" (subscript_expression "puVar17[0x12]" identifier [ number_literal ]) == (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" ( (parenthesized_expression "((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))" ( (binary_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" (parenthesized_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0))" ( (binary_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)" (parenthesized_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0))" ( (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)" (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" (parenthesized_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1)" ( (binary_expression "((byte)((uint)piVar12[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)piVar12[9] >> 5) ^ 1)" ( (binary_expression "(byte)((uint)piVar12[9] >> 5) ^ 1" (call_expression "(byte)((uint)piVar12[9] >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)piVar12[9] >> 5)" ( (binary_expression "(uint)piVar12[9] >> 5" (cast_expression "(uint)piVar12[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[9]" identifier [ number_literal ])) >> number_literal) ))) ^ number_literal) )) & number_literal) )) != (parenthesized_expression "(((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" ( (binary_expression "((byte)((uint)puVar17[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)puVar17[9] >> 5) ^ 1)" ( (binary_expression "(byte)((uint)puVar17[9] >> 5) ^ 1" (call_expression "(byte)((uint)puVar17[9] >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)puVar17[9] >> 5)" ( (binary_expression "(uint)puVar17[9] >> 5" (cast_expression "(uint)puVar17[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar17[9]" identifier [ number_literal ])) >> number_literal) ))) ^ number_literal) )) & number_literal) ))) || (parenthesized_expression "(puVar17[0xe] != 0)" ( (binary_expression "puVar17[0xe] != 0" (subscript_expression "puVar17[0xe]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar17[3] != 0)" ( (binary_expression "puVar17[3] != 0" (subscript_expression "puVar17[3]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" ( (parenthesized_expression "(sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))" ( (comma_expression "sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (assignment_expression "sVar4 = *(short *)((int)piVar12 + 0x2a)" identifier = (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a)" identifier != (pointer_expression "*(short *)((int)puVar17 + 0x2a)" * (cast_expression "(short *)((int)puVar17 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 0x2a)" ( (binary_expression "(int)puVar17 + 0x2a" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) || (parenthesized_expression "(uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" ( (comma_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (assignment_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10)" identifier = (binary_expression "(uint)*(ushort *)(puVar17 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(puVar17 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 10)" ( (binary_expression "puVar17 + 10" identifier + number_literal) ))))) , (binary_expression "*(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (pointer_expression "*(ushort *)(piVar12 + 10)" * (cast_expression "(ushort *)(piVar12 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 10)" ( (binary_expression "piVar12 + 10" identifier + number_literal) )))) != (pointer_expression "*(ushort *)(puVar17 + 10)" * (cast_expression "(ushort *)(puVar17 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 10)" ( (binary_expression "puVar17 + 10" identifier + number_literal) )))))) )))) )) ))) )) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (for_statement "for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" for ( (assignment_expression "iVar16 = 0" identifier = number_literal) ; (binary_expression "iVar16 < sVar4" identifier < identifier) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" { (expression_statement "iVar18 = piVar12[1] + iVar16 * 0x10;" (assignment_expression "iVar18 = piVar12[1] + iVar16 * 0x10" identifier = (binary_expression "piVar12[1] + iVar16 * 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + (binary_expression "iVar16 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar27 = iVar16 * 0x10 + puVar17[1];" (assignment_expression "uVar27 = iVar16 * 0x10 + puVar17[1]" identifier = (binary_expression "iVar16 * 0x10 + puVar17[1]" (binary_expression "iVar16 * 0x10" identifier * number_literal) + (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;" if (parenthesized_expression "(*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd))" ( (binary_expression "*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)" (pointer_expression "*(char *)(iVar18 + 0xd)" * (cast_expression "(char *)(iVar18 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xd)" ( (binary_expression "iVar18 + 0xd" identifier + number_literal) )))) != (pointer_expression "*(char *)(uVar27 + 0xd)" * (cast_expression "(char *)(uVar27 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 0xd)" ( (binary_expression "uVar27 + 0xd" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "iVar22 = *(int *)(uVar27 + 8);" (assignment_expression "iVar22 = *(int *)(uVar27 + 8)" identifier = (pointer_expression "*(int *)(uVar27 + 8)" * (cast_expression "(int *)(uVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 8)" ( (binary_expression "uVar27 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" if (parenthesized_expression "(*(int *)(iVar18 + 8) != 0)" ( (binary_expression "*(int *)(iVar18 + 8) != 0" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" { (if_statement "if (iVar22 == 0) goto LAB_000f380e;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "iVar22 = FUN_000446c0();" (assignment_expression "iVar22 = FUN_000446c0()" identifier = (call_expression "FUN_000446c0()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;" if (parenthesized_expression "((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))" ( (binary_expression "(iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" ( (parenthesized_expression "(*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))" ( (binary_expression "*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')" (binary_expression "*(char *)(iVar18 + 0xc) != '\0'" (pointer_expression "*(char *)(iVar18 + 0xc)" * (cast_expression "(char *)(iVar18 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(uVar27 + 0xc) == '\0')" ( (binary_expression "*(char *)(uVar27 + 0xc) == '\0'" (pointer_expression "*(char *)(uVar27 + 0xc)" * (cast_expression "(char *)(uVar27 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 0xc)" ( (binary_expression "uVar27 + 0xc" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "uVar35 = uVar27;" (assignment_expression "uVar35 = uVar27" identifier = identifier) ;) (if_statement "if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" { (expression_statement "iVar18 = *(int *)(iVar18 + 4);" (assignment_expression "iVar18 = *(int *)(iVar18 + 4)" identifier = (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) ;) (if_statement "if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;" if (parenthesized_expression "(((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))))" ( (binary_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" (parenthesized_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0))" ( (binary_expression "(iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) != (parenthesized_expression "(*(int *)(uVar27 + 4) == 0)" ( (binary_expression "*(int *)(uVar27 + 4) == 0" (pointer_expression "*(int *)(uVar27 + 4)" * (cast_expression "(int *)(uVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 4)" ( (binary_expression "uVar27 + 4" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" ( (parenthesized_expression "(uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))" ( (comma_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" identifier = (call_expression "CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" identifier (argument_list "((int3)(uVar27 >> 8),iVar18 == 0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "iVar18 == 0" identifier == number_literal) )))) , (binary_expression "iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" ( (comma_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" identifier = (call_expression "strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" identifier (argument_list "(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" ( (pointer_expression "*(char **)(iVar18 + 8)" * (cast_expression "(char **)(iVar18 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , (pointer_expression "*(char **)(*(int *)(uVar27 + 4) + 8)" * (cast_expression "(char **)(*(int *)(uVar27 + 4) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(uVar27 + 4) + 8)" ( (binary_expression "*(int *)(uVar27 + 4) + 8" (pointer_expression "*(int *)(uVar27 + 4)" * (cast_expression "(int *)(uVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 4)" ( (binary_expression "uVar27 + 4" identifier + number_literal) )))) + number_literal) )))) )))) , (comma_expression "uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "uVar35 = unaff_EDI + 0xc78c1" identifier = (binary_expression "unaff_EDI + 0xc78c1" identifier + number_literal)) , (binary_expression "iVar18 != 0" identifier != number_literal))) )))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) })) })) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (for_statement "for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" for ( (assignment_expression "iVar16 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ; (binary_expression "iVar16 != 0" identifier != number_literal) ; (assignment_expression "iVar16 = *(int *)(iVar16 + 0x14)" identifier = (pointer_expression "*(int *)(iVar16 + 0x14)" * (cast_expression "(int *)(iVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" { (expression_statement "uVar35 = puVar17[2];" (assignment_expression "uVar35 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }" if (parenthesized_expression "(*(char *)(iVar16 + 0x36) != '\0')" ( (binary_expression "*(char *)(iVar16 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar16 + 0x36)" * (cast_expression "(char *)(iVar16 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x36)" ( (binary_expression "iVar16 + 0x36" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_170 = 1;\n        }" { (expression_statement "local_170 = 1;" (assignment_expression "local_170 = 1" identifier = number_literal) ;) })) (while_statement "while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" { (if_statement "if (uVar35 == 0) goto LAB_000f380e;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;" if (parenthesized_expression "(((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0))" ( (binary_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)" (parenthesized_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)))" ( (binary_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" (parenthesized_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32))" ( (binary_expression "*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)" (pointer_expression "*(short *)(iVar16 + 0x32)" * (cast_expression "(short *)(iVar16 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x32)" ( (binary_expression "iVar16 + 0x32" identifier + number_literal) )))) == (pointer_expression "*(short *)(uVar35 + 0x32)" * (cast_expression "(short *)(uVar35 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x32)" ( (binary_expression "uVar35 + 0x32" identifier + number_literal) ))))) )) && (parenthesized_expression "(*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" ( (binary_expression "*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)" (pointer_expression "*(char *)(iVar16 + 0x36)" * (cast_expression "(char *)(iVar16 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x36)" ( (binary_expression "iVar16 + 0x36" identifier + number_literal) )))) == (pointer_expression "*(char *)(uVar35 + 0x36)" * (cast_expression "(char *)(uVar35 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x36)" ( (binary_expression "uVar35 + 0x36" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(iVar18 = FUN_00087c20(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_00087c20(), iVar18 != 0" (assignment_expression "iVar18 = FUN_00087c20()" identifier = (call_expression "FUN_00087c20()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar35 = *(uint *)(uVar35 + 0x14);" (assignment_expression "uVar35 = *(uint *)(uVar35 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar35 + 0x14)" * (cast_expression "(uint *)(uVar35 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x14)" ( (binary_expression "uVar35 + 0x14" identifier + number_literal) ))))) ;) })) })) (if_statement "if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;" if (parenthesized_expression "((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0))" ( (binary_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" (parenthesized_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))))" ( (binary_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" (parenthesized_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0))" ( (binary_expression "(piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)" (parenthesized_expression "(piVar12[6] != 0)" ( (binary_expression "piVar12[6] != 0" (subscript_expression "piVar12[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar16 = FUN_000879d0(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_000879d0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000879d0()" identifier = (call_expression "FUN_000879d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" ( (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))" ( (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)" (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000)" ( (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x4000" (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(piVar12[4] != 0)" ( (binary_expression "piVar12[4] != 0" (subscript_expression "piVar12[4]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" ( (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x80)" ( (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x80" (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }" if (parenthesized_expression "(puVar17[0x12] == 0)" ( (binary_expression "puVar17[0x12] == 0" (subscript_expression "puVar17[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_140 = 0xfff0bdc0;\n      }" { (expression_statement "local_140 = 0xfff0bdc0;" (assignment_expression "local_140 = 0xfff0bdc0" identifier = number_literal) ;) }) (else_clause "else {\n        local_140 = FUN_00046080();\n      }" else (compound_statement "{\n        local_140 = FUN_00046080();\n      }" { (expression_statement "local_140 = FUN_00046080();" (assignment_expression "local_140 = FUN_00046080()" identifier = (call_expression "FUN_00046080()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "piVar34 = (int *)piVar11[2];" (assignment_expression "piVar34 = (int *)piVar11[2]" identifier = (cast_expression "(int *)piVar11[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }" if (parenthesized_expression "(piVar34 == (int *)0x0)" ( (binary_expression "piVar34 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar34 = (int *)FUN_00073350();\n      }" { (expression_statement "piVar34 = (int *)FUN_00073350();" (assignment_expression "piVar34 = (int *)FUN_00073350()" identifier = (cast_expression "(int *)FUN_00073350()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073350()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "FUN_000bca90();" (call_expression "FUN_000bca90()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_12c = 0;" (assignment_expression "local_12c = 0" identifier = number_literal) ;) (expression_statement "piVar11[10] = piVar11[10] + 2;" (assignment_expression "piVar11[10] = piVar11[10] + 2" (subscript_expression "piVar11[10]" identifier [ number_literal ]) = (binary_expression "piVar11[10] + 2" (subscript_expression "piVar11[10]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }" if (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" ( (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" * (cast_expression "(byte *)(piVar12 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 9)" ( (binary_expression "piVar12 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_12c = FUN_00055fd0();\n      }" { (expression_statement "local_12c = FUN_00055fd0();" (assignment_expression "local_12c = FUN_00055fd0()" identifier = (call_expression "FUN_00055fd0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x13)" * (cast_expression "(char *)((int)piVar11 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }" { (expression_statement "local_168 = (int *)(piVar11[0xb] + 1);" (assignment_expression "local_168 = (int *)(piVar11[0xb] + 1)" identifier = (cast_expression "(int *)(piVar11[0xb] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0xb] + 1)" ( (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar11[0xb] = (int)local_168;" (assignment_expression "piVar11[0xb] = (int)local_168" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;" statement_identifier : (expression_statement "uVar35 = piVar11[0xb] + 1;" (assignment_expression "uVar35 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "piVar11[0xb] = uVar35;" (assignment_expression "piVar11[0xb] = uVar35" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_16c = uVar35;" (assignment_expression "local_16c = uVar35" identifier = identifier) ;) }) (else_clause "else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" else (compound_statement "{\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" { (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" identifier = (binary_expression "cVar2 - 1" identifier - number_literal)) ;) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_168 = (int *)piVar11[bVar1 + 0x24];" (assignment_expression "local_168 = (int *)piVar11[bVar1 + 0x24]" identifier = (cast_expression "(int *)piVar11[bVar1 + 0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[bVar1 + 0x24]" identifier [ (binary_expression "bVar1 + 0x24" identifier + number_literal) ]))) ;) (if_statement "if (bVar1 == 0) goto LAB_000f592a;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f592a;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar2 - 2U" identifier - number_literal)) ;) (expression_statement "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier = (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier [ (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 2U)" ( (binary_expression "cVar2 - 2U" identifier - number_literal) ))) + number_literal) ])) ;) }))) (expression_statement "FUN_00090f40(piVar12,0x6e,uVar35,uVar35);" (call_expression "FUN_00090f40(piVar12,0x6e,uVar35,uVar35)" identifier (argument_list "(piVar12,0x6e,uVar35,uVar35)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar16 = extraout_ECX_03;" (assignment_expression "iVar16 = extraout_ECX_03" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }" { (if_statement "if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" if (parenthesized_expression "((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1))))" ( (binary_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))" (parenthesized_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0))" ( (binary_expression "((short)piVar12[10] < 0) && (piVar12[2] != 0)" (parenthesized_expression "((short)piVar12[10] < 0)" ( (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])) < number_literal) )) && (parenthesized_expression "(piVar12[2] != 0)" ( (binary_expression "piVar12[2] != 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_170 != 0 || (1 < local_14c - 1)))" ( (parenthesized_expression "(local_170 != 0 || (1 < local_14c - 1))" ( (binary_expression "local_170 != 0 || (1 < local_14c - 1)" (binary_expression "local_170 != 0" identifier != number_literal) || (parenthesized_expression "(1 < local_14c - 1)" ( (binary_expression "1 < local_14c - 1" number_literal < (binary_expression "local_14c - 1" identifier - number_literal)) ))) )) ))) )) (compound_statement "{\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" { (expression_statement "uVar35 = FUN_00073150(0);" (assignment_expression "uVar35 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_170 = FUN_00073150(0);" (assignment_expression "local_170 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }" if (parenthesized_expression "((int)uVar35 < 0)" ( (binary_expression "(int)uVar35 < 0" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar35 = piVar34[0x1a] - 1;\n          }" { (expression_statement "uVar35 = piVar34[0x1a] - 1;" (assignment_expression "uVar35 = piVar34[0x1a] - 1" identifier = (binary_expression "piVar34[0x1a] - 1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) - number_literal)) ;) })) (expression_statement "iVar16 = *piVar34;" (assignment_expression "iVar16 = *piVar34" identifier = (pointer_expression "*piVar34" * identifier)) ;) (expression_statement "iVar18 = unaff_EDI + 0xc9455;" (assignment_expression "iVar18 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" if (parenthesized_expression "(*(char *)(iVar16 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar16 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar16 + 0x4d)" * (cast_expression "(char *)(iVar16 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x4d)" ( (binary_expression "iVar16 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" { (expression_statement "uVar35 = uVar35 * 0x18;" (assignment_expression "uVar35 = uVar35 * 0x18" identifier = (binary_expression "uVar35 * 0x18" identifier * number_literal)) ;) (expression_statement "iVar18 = piVar34[0x19] + uVar35;" (assignment_expression "iVar18 = piVar34[0x19] + uVar35" identifier = (binary_expression "piVar34[0x19] + uVar35" (subscript_expression "piVar34[0x19]" identifier [ number_literal ]) + identifier)) ;) })) (expression_statement "*(int *)(iVar18 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar18 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n        local_170 = 0;\n      }" else (compound_statement "{\n        local_170 = 0;\n      }" { (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) }))) (if_statement "if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" if (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) == 0)" ( (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) == 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" ( (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" * (cast_expression "(byte *)(puVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" { (expression_statement "FUN_00090f40(puVar17,0x6d,iVar16,iVar16);" (call_expression "FUN_00090f40(puVar17,0x6d,iVar16,iVar16)" identifier (argument_list "(puVar17,0x6d,iVar16,iVar16)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "local_130 = FUN_00073150(0);" (assignment_expression "local_130 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" if (parenthesized_expression "((short)piVar12[10] < 0)" ( (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }" { (if_statement "if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" if (parenthesized_expression "(piVar12[2] == 0)" ( (binary_expression "piVar12[2] == 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" identifier = identifier) ;) }) (else_clause "else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" else (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" identifier = identifier) ;) }))) }) (else_clause "else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" else (compound_statement "{\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" { (expression_statement "iVar18 = FUN_00073150(local_16c);" (assignment_expression "iVar18 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar16 = FUN_00072f80(0,local_16c);" (assignment_expression "iVar16 = FUN_00072f80(0,local_16c)" identifier = (call_expression "FUN_00072f80(0,local_16c)" identifier (argument_list "(0,local_16c)" ( number_literal , identifier )))) ;) (expression_statement "FUN_00086c60();" (call_expression "FUN_00086c60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar16 = piVar34[0x1a] + -1;\n          }" { (expression_statement "iVar16 = piVar34[0x1a] + -1;" (assignment_expression "iVar16 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" { (expression_statement "iVar22 = piVar34[0x19] + iVar16 * 0x18;" (assignment_expression "iVar22 = piVar34[0x19] + iVar16 * 0x18" identifier = (binary_expression "piVar34[0x19] + iVar16 * 0x18" (subscript_expression "piVar34[0x19]" identifier [ number_literal ]) + (binary_expression "iVar16 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar22 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }" if (parenthesized_expression "(0 < local_12c)" ( (binary_expression "0 < local_12c" number_literal < identifier) )) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) })) }))) (expression_statement "uVar28 = 0x29;" (assignment_expression "uVar28 = 0x29" identifier = number_literal) ;) (expression_statement "FUN_00072f80(local_168,1,iVar22,iVar22);" (call_expression "FUN_00072f80(local_168,1,iVar22,iVar22)" identifier (argument_list "(local_168,1,iVar22,iVar22)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" { (expression_statement "uVar28 = 0x39;" (assignment_expression "uVar28 = 0x39" identifier = number_literal) ;) (expression_statement "iVar16 = FUN_00073150(0);" (assignment_expression "iVar16 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) })) (expression_statement "FUN_00072f80(local_168,local_16c,iVar16,iVar16);" (call_expression "FUN_00072f80(local_168,local_16c,iVar16,iVar16)" identifier (argument_list "(local_168,local_16c,iVar16,iVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00062750(0xfffffffa);" (call_expression "FUN_00062750(0xfffffffa)" identifier (argument_list "(0xfffffffa)" ( number_literal ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" { (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00073150(iVar18);" (call_expression "FUN_00073150(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" else (compound_statement "{\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" { (expression_statement "FUN_00072d00(1,*piVar12,uVar35,uVar35);" (call_expression "FUN_00072d00(1,*piVar12,uVar35,uVar35)" identifier (argument_list "(1,*piVar12,uVar35,uVar35)" ( number_literal , (pointer_expression "*piVar12" * identifier) , identifier , identifier ))) ;) (expression_statement "FUN_00072d00(0,*puVar17);" (call_expression "FUN_00072d00(0,*puVar17)" identifier (argument_list "(0,*puVar17)" ( number_literal , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) }))) (for_statement "for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" for ( (assignment_expression "puVar38 = (undefined4 *)piVar12[2]" identifier = (cast_expression "(undefined4 *)piVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ]))) ; (binary_expression "puVar38 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar38 = (undefined4 *)puVar38[5]" identifier = (cast_expression "(undefined4 *)puVar38[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar38[5]" identifier [ number_literal ]))) ) (compound_statement "{\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" { (expression_statement "puVar36 = (undefined4 *)puVar17[2];" (assignment_expression "puVar36 = (undefined4 *)puVar17[2]" identifier = (cast_expression "(undefined4 *)puVar17[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[2]" identifier [ number_literal ]))) ;) (while_statement "while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" { (if_statement "if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }" if (parenthesized_expression "(puVar36 == (undefined4 *)0x0)" ( (binary_expression "puVar36 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_000157bf();\n            return;\n          }" { (expression_statement "FUN_000157bf();" (call_expression "FUN_000157bf()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;" if (parenthesized_expression "(((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0))" ( (binary_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)" (parenthesized_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)))" ( (binary_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" (parenthesized_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32))" ( (binary_expression "*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)" (pointer_expression "*(short *)((int)puVar38 + 0x32)" * (cast_expression "(short *)((int)puVar38 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x32)" ( (binary_expression "(int)puVar38 + 0x32" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(short *)((int)puVar36 + 0x32)" * (cast_expression "(short *)((int)puVar36 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 0x32)" ( (binary_expression "(int)puVar36 + 0x32" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" ( (binary_expression "*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)" (pointer_expression "*(char *)((int)puVar38 + 0x36)" * (cast_expression "(char *)((int)puVar38 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x36)" ( (binary_expression "(int)puVar38 + 0x36" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(char *)((int)puVar36 + 0x36)" * (cast_expression "(char *)((int)puVar36 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 0x36)" ( (binary_expression "(int)puVar36 + 0x36" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) && (parenthesized_expression "(iVar16 = FUN_00087c20(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_00087c20(), iVar16 != 0" (assignment_expression "iVar16 = FUN_00087c20()" identifier = (call_expression "FUN_00087c20()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar36 = (undefined4 *)puVar36[5];" (assignment_expression "puVar36 = (undefined4 *)puVar36[5]" identifier = (cast_expression "(undefined4 *)puVar36[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar36[5]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);" (call_expression "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" identifier (argument_list "(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" ( (subscript_expression "puVar36[0xb]" identifier [ number_literal ]) , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" identifier (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" ( identifier , (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" & identifier) + identifier) , (pointer_expression "*puVar36" * identifier) ))) ;) (expression_statement "FUN_00072f80(puVar38[0xb],local_134);" (call_expression "FUN_00072f80(puVar38[0xb],local_134)" identifier (argument_list "(puVar38[0xb],local_134)" ( (subscript_expression "puVar38[0xb]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" { (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = number_literal) ;) })) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" identifier (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" ( identifier , (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" & identifier) + identifier) , (pointer_expression "*puVar38" * identifier) , identifier ))) ;) (expression_statement "local_14c = FUN_00073150(0);" (assignment_expression "local_14c = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "FUN_00072f80(local_168,1);" (call_expression "FUN_00072f80(local_168,1)" identifier (argument_list "(local_168,1)" ( identifier , number_literal ))) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" { (expression_statement "uVar5 = *(ushort *)(puVar36 + 0xd);" (assignment_expression "uVar5 = *(ushort *)(puVar36 + 0xd)" identifier = (pointer_expression "*(ushort *)(puVar36 + 0xd)" * (cast_expression "(ushort *)(puVar36 + 0xd)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0xd)" ( (binary_expression "puVar36 + 0xd" identifier + number_literal) ))))) ;) (for_statement "for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" for ( (assignment_expression "uVar35 = 0" identifier = number_literal) ; (binary_expression "(int)uVar35 < (int)(uint)uVar5" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)uVar5" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ; (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ) (compound_statement "{\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" { (if_statement "if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" if (parenthesized_expression "((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))" ( (binary_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0)" (parenthesized_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0)" ( (binary_expression "*(int *)(puVar36[8] + uVar35 * 4) == 0" (pointer_expression "*(int *)(puVar36[8] + uVar35 * 4)" * (cast_expression "(int *)(puVar36[8] + uVar35 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[8] + uVar35 * 4)" ( (binary_expression "puVar36[8] + uVar35 * 4" (subscript_expression "puVar36[8]" identifier [ number_literal ]) + (binary_expression "uVar35 * 4" identifier * number_literal)) )))) == number_literal) )) || (parenthesized_expression "(iVar16 = FUN_000446c0(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_000446c0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000446c0()" identifier = (call_expression "FUN_000446c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" { (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000f55d2;" goto statement_identifier ;) })) })) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (if_statement "if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" if (parenthesized_expression "(uVar35 == uVar5)" ( (binary_expression "uVar35 == uVar5" identifier == identifier) )) (compound_statement "{\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" { (expression_statement "uVar33 = 0x10;" (assignment_expression "uVar33 = 0x10" identifier = number_literal) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) })) (labeled_statement "LAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" statement_identifier : (if_statement "if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" if (parenthesized_expression "(((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2))" ( (binary_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0)" ( (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) != 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" ( (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" * (cast_expression "(byte *)(puVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" ( (binary_expression "(*(byte *)((int)puVar38 + 0x37) & 3) == 2" (parenthesized_expression "(*(byte *)((int)puVar38 + 0x37) & 3)" ( (binary_expression "*(byte *)((int)puVar38 + 0x37) & 3" (pointer_expression "*(byte *)((int)puVar38 + 0x37)" * (cast_expression "(byte *)((int)puVar38 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x37)" ( (binary_expression "(int)puVar38 + 0x37" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar33 = uVar33 | 1;\n        }" { (expression_statement "uVar33 = uVar33 | 1;" (assignment_expression "uVar33 = uVar33 | 1" identifier = (binary_expression "uVar33 | 1" identifier | number_literal)) ;) }))) (expression_statement "FUN_00073150(local_168);" (call_expression "FUN_00073150(local_168)" identifier (argument_list "(local_168)" ( identifier ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" { (expression_statement "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;" (assignment_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8" (pointer_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = (binary_expression "uVar33 | 8" identifier | number_literal)) ;) })) (expression_statement "FUN_00073150(local_14c + 1);" (call_expression "FUN_00073150(local_14c + 1)" identifier (argument_list "(local_14c + 1)" ( (binary_expression "local_14c + 1" identifier + number_literal) ))) ;) (if_statement "if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_14c < 0)" ( (binary_expression "(int)local_14c < 0" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_14c = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_14c = piVar34[0x1a] + -1;" (assignment_expression "local_14c = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar16 = unaff_EDI + 0xc9455;" (assignment_expression "iVar16 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar16 = local_14c * 0x18 + piVar34[0x19];" (assignment_expression "iVar16 = local_14c * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_14c * 0x18 + piVar34[0x19]" (binary_expression "local_14c * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar16 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar16 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (if_statement "if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" { (if_statement "if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_130 < 0)" ( (binary_expression "(int)local_130 < 0" (cast_expression "(int)local_130" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_130 = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_130 = piVar34[0x1a] + -1;" (assignment_expression "local_130 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar15 = local_130 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_130 * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_130 * 0x18 + piVar34[0x19]" (binary_expression "local_130 * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) })) (if_statement "if (local_16c != 0) {\n        FUN_00045e10();\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00045e10();\n      }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }" if (parenthesized_expression "(local_168 != (int *)0x0)" ( (binary_expression "local_168 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00045e10();\n      }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" if (parenthesized_expression "(local_170 != 0)" ( (binary_expression "local_170 != 0" identifier != number_literal) )) (compound_statement "{\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" { (if_statement "if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }" if (parenthesized_expression "(piVar11[0x1c] != 0)" ( (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_000916b0();\n        }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_170 < 0)" ( (binary_expression "(int)local_170 < 0" (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_170 = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_170 = piVar34[0x1a] + -1;" (assignment_expression "local_170 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar15 = local_170 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_170 * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_170 * 0x18 + piVar34[0x19]" (binary_expression "local_170 * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;) })) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" if (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0))" ( (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0))" ( (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" ( (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal)) ))) )) && (parenthesized_expression "(local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" ( (comma_expression "local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_17c = (int *)piVar11[0x1c]" identifier = (cast_expression "(int *)piVar11[0x1c]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]))) , (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "local_17c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f380e:\n    local_118 = 0;" statement_identifier : (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;)) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }" if (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" ( (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" * (cast_expression "(byte *)(piVar12 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 9)" ( (binary_expression "piVar12 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      local_118 = FUN_00055fd0();\n    }" { (expression_statement "local_118 = FUN_00055fd0();" (assignment_expression "local_118 = FUN_00055fd0()" identifier = (call_expression "FUN_00055fd0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_110 = piVar11[0xb];" (assignment_expression "local_110 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" (binary_expression "local_110 + 1" identifier + number_literal) + (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "iVar15 = local_110 + 1;" (assignment_expression "iVar15 = local_110 + 1" identifier = (binary_expression "local_110 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar16;" (assignment_expression "piVar11[0xb] = iVar16" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_12c = iVar15;" (assignment_expression "local_12c = iVar15" identifier = identifier) ;) (if_statement "if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" { (expression_statement "local_12c = local_110 + 2;" (assignment_expression "local_12c = local_110 + 2" identifier = (binary_expression "local_110 + 2" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar16 + 1;" (assignment_expression "piVar11[0xb] = iVar16 + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "local_110 = iVar15;" (assignment_expression "local_110 = iVar15" identifier = identifier) ;) })) (expression_statement "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;" (assignment_expression "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" identifier = (binary_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" (parenthesized_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1)" ( (binary_expression "(uint)piVar12[9] >> 7 & 0xff ^ 1" (binary_expression "(uint)piVar12[9] >> 7 & 0xff" (binary_expression "(uint)piVar12[9] >> 7" (cast_expression "(uint)piVar12[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[9]" identifier [ number_literal ])) >> number_literal) & number_literal) ^ number_literal) )) & number_literal)) ;) (if_statement "if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" if (parenthesized_expression "((param_1 == (int *)0x0) || (param_1[1] < 1))" ( (binary_expression "(param_1 == (int *)0x0) || (param_1[1] < 1)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) ))) )) (compound_statement "{\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }" { (labeled_statement "LAB_000f4012:\n      local_140 = 0xffffffff;" statement_identifier : (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" else (compound_statement "{\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);" do (compound_statement "{\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      }" { (expression_statement "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8)" * (cast_expression "(undefined4 *)(*param_1 + 4 + iVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4 + iVar16 * 8)" ( (binary_expression "*param_1 + 4 + iVar16 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar16 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 < param_1[1])" ( (binary_expression "iVar16 < param_1[1]" identifier < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) ;) (if_statement "if (param_1[1] < 1) goto LAB_000f4012;" if (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f4012;" goto statement_identifier ;)) (expression_statement "local_14c = 0;" (assignment_expression "local_14c = 0" identifier = number_literal) ;) (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);" do (compound_statement "{\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      }" { (expression_statement "puVar17 = (undefined4 *)(local_14c * 8 + *param_1);" (assignment_expression "puVar17 = (undefined4 *)(local_14c * 8 + *param_1)" identifier = (cast_expression "(undefined4 *)(local_14c * 8 + *param_1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_14c * 8 + *param_1)" ( (binary_expression "local_14c * 8 + *param_1" (binary_expression "local_14c * 8" identifier * number_literal) + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "local_174 = (byte *)*puVar17;" (assignment_expression "local_174 = (byte *)*puVar17" identifier = (cast_expression "(byte *)*puVar17" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) ;) (if_statement "if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" if (parenthesized_expression "(0 < (int)local_170)" ( (binary_expression "0 < (int)local_170" number_literal < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);" do (compound_statement "{\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          }" { (expression_statement "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);" (assignment_expression "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10)" identifier = (pointer_expression "*(byte **)(piVar12[1] + uVar35 * 0x10)" * (cast_expression "(byte **)(piVar12[1] + uVar35 * 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[1] + uVar35 * 0x10)" ( (binary_expression "piVar12[1] + uVar35 * 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + (binary_expression "uVar35 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "pbVar29 = local_174;" (assignment_expression "pbVar29 = local_174" identifier = identifier) ;) (expression_statement "bVar1 = *local_174;" (assignment_expression "bVar1 = *local_174" identifier = (pointer_expression "*local_174" * identifier)) ;) (if_statement "if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" if (parenthesized_expression "((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI])" ( (binary_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ]) == (subscript_expression "(&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*local_174 + unaff_EDI" (binary_expression "(uint)*local_174" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ])) )) (compound_statement "{\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" { (do_statement "do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);" do (compound_statement "{\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              }" { (if_statement "if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" { (expression_statement "puVar17[1] = uVar35;" (assignment_expression "puVar17[1] = uVar35" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }" if (parenthesized_expression "(uVar35 != local_14c)" ( (binary_expression "uVar35 != local_14c" identifier != identifier) )) (compound_statement "{\n                    local_130._0_1_ = 0;\n                  }" { (expression_statement "local_130._0_1_ = 0;" (assignment_expression "local_130._0_1_ = 0" (field_expression "local_130._0_1_" identifier . field_identifier) = number_literal) ;) })) (expression_statement "local_130 = (uint)(byte)local_130;" (assignment_expression "local_130 = (uint)(byte)local_130" identifier = (cast_expression "(uint)(byte)local_130" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }" if (parenthesized_expression "((int)(short)piVar12[10] == uVar35)" ( (binary_expression "(int)(short)piVar12[10] == uVar35" (cast_expression "(int)(short)piVar12[10]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) == identifier) )) (compound_statement "{\n                    local_140 = local_14c;\n                  }" { (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" identifier = identifier) ;) })) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;" if (parenthesized_expression "((int)uVar35 < (int)local_170)" ( (binary_expression "(int)uVar35 < (int)local_170" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000f39c8;" goto statement_identifier ;)) (expression_statement "local_174 = *(byte **)(*param_1 + local_14c * 8);" (assignment_expression "local_174 = *(byte **)(*param_1 + local_14c * 8)" identifier = (pointer_expression "*(byte **)(*param_1 + local_14c * 8)" * (cast_expression "(byte **)(*param_1 + local_14c * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + local_14c * 8)" ( (binary_expression "*param_1 + local_14c * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "local_14c * 8" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_000f399e;" goto statement_identifier ;) })) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar29 + 1;" (assignment_expression "pbVar29 = pbVar29 + 1" identifier = (binary_expression "pbVar29 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar29;" (assignment_expression "bVar1 = *pbVar29" identifier = (pointer_expression "*pbVar29" * identifier)) ;) }) while (parenthesized_expression "((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI])" ( (binary_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)bVar1 + unaff_EDI" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) == (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ])) )) ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 != local_170)" ( (binary_expression "uVar35 != local_170" identifier != identifier) )) ;) })) (labeled_statement "LAB_000f399e:\n        iVar16 = FUN_00045bc0();" statement_identifier : (expression_statement "iVar16 = FUN_00045bc0();" (assignment_expression "iVar16 = FUN_00045bc0()" identifier = (call_expression "FUN_00045bc0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" if (parenthesized_expression "((iVar16 == 0) || ((uVar6 & 0x20) != 0))" ( (binary_expression "(iVar16 == 0) || ((uVar6 & 0x20) != 0)" (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "((uVar6 & 0x20) != 0)" ( (binary_expression "(uVar6 & 0x20) != 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" { (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" identifier (argument_list "(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" ( identifier , (binary_expression "unaff_EDI + 0x77cf9" identifier + number_literal) , identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined1 *)((int)piVar11 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)piVar11 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)piVar11 + 0x11)" * (cast_expression "(undefined1 *)((int)piVar11 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x11)" ( (binary_expression "(int)piVar11 + 0x11" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" identifier = identifier) ;) (labeled_statement "LAB_000f39c8:\n        local_14c = local_14c + 1;" statement_identifier : (expression_statement "local_14c = local_14c + 1;" (assignment_expression "local_14c = local_14c + 1" identifier = (binary_expression "local_14c + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((int)local_14c < param_1[1])" ( (binary_expression "(int)local_14c < param_1[1]" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) ;) }))) (expression_statement "iVar16 = local_12c + 1;" (assignment_expression "iVar16 = local_12c + 1" identifier = (binary_expression "local_12c + 1" identifier + number_literal)) ;) (if_statement "if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);" do (compound_statement "{\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4))" * (cast_expression "(undefined4 *)((int)local_a8 + (uVar35 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + (uVar35 - 4))" ( (binary_expression "(int)local_a8 + (uVar35 - 4)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar35 - 4)" ( (binary_expression "uVar35 - 4" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" identifier = (binary_expression "uVar35 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < 0x1c)" ( (binary_expression "uVar35 < 0x1c" identifier < number_literal) )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "local_b0._0_4_ = piVar11;" (assignment_expression "local_b0._0_4_ = piVar11" (field_expression "local_b0._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" if (parenthesized_expression "(local_148 == (int *)0x0)" ( (binary_expression "local_148 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }" { (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "local_174 = (byte *)0x0;" (assignment_expression "local_174 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" else (compound_statement "{\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "local_174 = (byte *)*local_148;" (assignment_expression "local_174 = (byte *)*local_148" identifier = (cast_expression "(byte *)*local_148" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_148" * identifier))) ;) (expression_statement "piVar34 = local_148 + 1;" (assignment_expression "piVar34 = local_148 + 1" identifier = (binary_expression "local_148 + 1" identifier + number_literal)) ;) (if_statement "if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" if (parenthesized_expression "(0 < (int)local_174)" ( (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" { (do_statement "do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);" do (compound_statement "{\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          }" { (expression_statement "iVar22 = *piVar34;" (assignment_expression "iVar22 = *piVar34" identifier = (pointer_expression "*piVar34" * identifier)) ;) (if_statement "if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" { (expression_statement "uVar33 = (ushort)local_98;" (assignment_expression "uVar33 = (ushort)local_98" identifier = (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "local_b4 = &local_b0;" (assignment_expression "local_b4 = &local_b0" identifier = (pointer_expression "&local_b0" & identifier)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_98 = local_98 & 0xffff6fef;" (assignment_expression "local_98 = local_98 & 0xffff6fef" identifier = (binary_expression "local_98 & 0xffff6fef" identifier & number_literal)) ;) (expression_statement "local_cc = (int *)local_b0;" (assignment_expression "local_cc = (int *)local_b0" identifier = (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];" (assignment_expression "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" identifier = (binary_expression "*(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" (pointer_expression "*(int *)(iVar22 + 0x18)" * (cast_expression "(int *)(iVar22 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) + (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]))) ;) (expression_statement "((int *)local_b0)[0x33] = iVar24;" (assignment_expression "((int *)local_b0)[0x33] = iVar24" (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "local_c8 = unaff_EDI + -0x50327;" (assignment_expression "local_c8 = unaff_EDI + -0x50327" identifier = (binary_expression "unaff_EDI + -0x50327" identifier + number_literal)) ;) (expression_statement "local_c4 = unaff_EDI + -0x606a7;" (assignment_expression "local_c4 = unaff_EDI + -0x606a7" identifier = (binary_expression "unaff_EDI + -0x606a7" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" if (parenthesized_expression "(*(int *)(*(int *)local_b0 + 0x74) < iVar24)" ( (binary_expression "*(int *)(*(int *)local_b0 + 0x74) < iVar24" (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" * (cast_expression "(int *)(*(int *)local_b0 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_b0 + 0x74)" ( (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" * (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) < identifier) )) (compound_statement "{\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }" { (expression_statement "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));" (call_expression "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" identifier (argument_list "((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "&UNK_000768cd + unaff_EDI" (pointer_expression "&UNK_000768cd" & identifier) + identifier) , (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" * (cast_expression "(int *)(*(int *)local_b0 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_b0 + 0x74)" ( (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" * (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) ))) ;) }) (else_clause "else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" else (compound_statement "{\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" { (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);" (assignment_expression "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" identifier [ number_literal ]) = (binary_expression "local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" identifier [ number_literal ]) - (pointer_expression "*(int *)(iVar22 + 0x18)" * (cast_expression "(int *)(iVar22 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" if (parenthesized_expression "((local_98 & 0x10) != 0)" ( (binary_expression "(local_98 & 0x10) != 0" (parenthesized_expression "(local_98 & 0x10)" ( (binary_expression "local_98 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" { (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" if (parenthesized_expression "((short)(ushort)local_98 < 0)" ( (binary_expression "(short)(ushort)local_98 < 0" (cast_expression "(short)(ushort)local_98" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) < number_literal) )) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" { (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);" (assignment_expression "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" identifier = (call_expression "CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" identifier (argument_list "(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" ( (field_expression "local_98._2_2_" identifier . field_identifier) , (binary_expression "uVar33 & 0x9010 | (ushort)local_98" (binary_expression "uVar33 & 0x9010" identifier & number_literal) | (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) )))) ;) (if_statement "if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;" if (parenthesized_expression "((local_9c < 1) && (local_cc[9] < 1))" ( (binary_expression "(local_9c < 1) && (local_cc[9] < 1)" (parenthesized_expression "(local_9c < 1)" ( (binary_expression "local_9c < 1" identifier < number_literal) )) && (parenthesized_expression "(local_cc[9] < 1)" ( (binary_expression "local_cc[9] < 1" (subscript_expression "local_cc[9]" identifier [ number_literal ]) < number_literal) ))) )) (goto_statement "goto LAB_000f41e7;" goto statement_identifier ;)) }))) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_000f36b0;" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f36b0;" goto statement_identifier ;)) (if_statement "if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                FUN_0005b000();\n              }" { (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_000f374a;" goto statement_identifier ;) })) (labeled_statement "LAB_000f41e7:\n            iVar18 = iVar18 + 1;" statement_identifier : (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;)) (expression_statement "piVar34 = piVar34 + 5;" (assignment_expression "piVar34 = piVar34 + 5" identifier = (binary_expression "piVar34 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < *local_148)" ( (binary_expression "iVar18 < *local_148" identifier < (pointer_expression "*local_148" * identifier)) )) ;) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_16c._0_1_ = param_1 == (int *)0x0;" (assignment_expression "local_16c._0_1_ = param_1 == (int *)0x0" (field_expression "local_16c._0_1_" identifier . field_identifier) = (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar35 = (uint)local_16c._0_1_;" (assignment_expression "uVar35 = (uint)local_16c._0_1_" identifier = (cast_expression "(uint)local_16c._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_16c._0_1_" identifier . field_identifier))) ;) (goto_statement "goto LAB_000f3c52;" goto statement_identifier ;) })) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);" (assignment_expression "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" identifier = (call_expression "(uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" ( (binary_expression "param_1 == (int *)0x0 && local_174 != (byte *)0x0" (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) }))) }) (else_clause "else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" else (compound_statement "{\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" { (expression_statement "iVar18 = piVar11[0xb];" (assignment_expression "iVar18 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar11[0xb] = iVar18 + 1;" (assignment_expression "piVar11[0xb] = iVar18 + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = local_144[0x1a];" (assignment_expression "iVar22 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00072f80(0,iVar22 + 1);" (call_expression "FUN_00072f80(0,iVar22 + 1)" identifier (argument_list "(0,iVar22 + 1)" ( number_literal , (binary_expression "iVar22 + 1" identifier + number_literal) ))) ;) (expression_statement "local_e4 = 0xd;" (assignment_expression "local_e4 = 0xd" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (if_statement "if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }" if (parenthesized_expression "((byte)local_130 != '\0')" ( (binary_expression "(byte)local_130 != '\0'" (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_dc = iVar16;\n      }" { (expression_statement "local_dc = iVar16;" (assignment_expression "local_dc = iVar16" identifier = identifier) ;) })) (expression_statement "local_d8 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_d8 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_e0 = iVar18 + 1;" (assignment_expression "local_e0 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = FUN_000c4410();" (assignment_expression "iVar18 = FUN_000c4410()" identifier = (call_expression "FUN_000c4410()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;" if (parenthesized_expression "(((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))" ( (binary_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0)" (parenthesized_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0'))" ( (binary_expression "(iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(piVar11[9] != 0)" ( (binary_expression "piVar11[9] != 0" (subscript_expression "piVar11[9]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "local_170 = local_dc;" (assignment_expression "local_170 = local_dc" identifier = identifier) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(undefined1 *)(local_144[3] + 0x13) = 0;" (assignment_expression "*(undefined1 *)(local_144[3] + 0x13) = 0" (pointer_expression "*(undefined1 *)(local_144[3] + 0x13)" * (cast_expression "(undefined1 *)(local_144[3] + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[3] + 0x13)" ( (binary_expression "local_144[3] + 0x13" (subscript_expression "local_144[3]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_144[3] + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(local_144[3] + 0x1c) = 0" (pointer_expression "*(undefined4 *)(local_144[3] + 0x1c)" * (cast_expression "(undefined4 *)(local_144[3] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[3] + 0x1c)" ( (binary_expression "local_144[3] + 0x1c" (subscript_expression "local_144[3]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "iVar18 = local_144[0x1a];" (assignment_expression "iVar18 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar24 = *local_144;" (assignment_expression "iVar24 = *local_144" identifier = (pointer_expression "*local_144" * identifier)) ;) (if_statement "if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar22 = iVar18 + -1;\n      }" { (expression_statement "iVar22 = iVar18 + -1;" (assignment_expression "iVar22 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" if (parenthesized_expression "(*(char *)(iVar24 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar24 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar24 + 0x4d)" * (cast_expression "(char *)(iVar24 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4d)" ( (binary_expression "iVar24 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" { (expression_statement "iVar24 = iVar22 * 3;" (assignment_expression "iVar24 = iVar22 * 3" identifier = (binary_expression "iVar22 * 3" identifier * number_literal)) ;) (expression_statement "iVar25 = local_144[0x19] + iVar22 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar22 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar22 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar22 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar25 + 8) = iVar18;" (assignment_expression "*(int *)(iVar25 + 8) = iVar18" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_174 = *(byte **)*local_158;" (assignment_expression "local_174 = *(byte **)*local_158" identifier = (pointer_expression "*(byte **)*local_158" * (cast_expression "(byte **)*local_158" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_158" * identifier)))) ;) (if_statement "if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }" { (expression_statement "uVar42 = CONCAT44(iVar18,piVar11[2]);" (assignment_expression "uVar42 = CONCAT44(iVar18,piVar11[2])" identifier = (call_expression "CONCAT44(iVar18,piVar11[2])" identifier (argument_list "(iVar18,piVar11[2])" ( identifier , (subscript_expression "piVar11[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" if (parenthesized_expression "(piVar11[2] == 0)" ( (binary_expression "piVar11[2] == 0" (subscript_expression "piVar11[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" { (expression_statement "uVar42 = FUN_00073350();" (assignment_expression "uVar42 = FUN_00073350()" identifier = (call_expression "FUN_00073350()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar24 = extraout_ECX_06;" (assignment_expression "iVar24 = extraout_ECX_06" identifier = identifier) ;) })) (expression_statement "iVar18 = (int)((ulonglong)uVar42 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar42 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar37 = (int *)uVar42;" (assignment_expression "piVar37 = (int *)uVar42" identifier = (cast_expression "(int *)uVar42" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar34 = (int *)0x0;" (assignment_expression "piVar34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" { (expression_statement "iVar18 = *piVar11;" (assignment_expression "iVar18 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" for ( (assignment_expression "piVar34 = (int *)piVar12[0x10]" identifier = (cast_expression "(int *)piVar12[0x10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x10]" identifier [ number_literal ]))) ; (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar18 != *piVar34))" ( (binary_expression "piVar34 != (int *)0x0 && (iVar18 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar18 != *piVar34)" ( (binary_expression "iVar18 != *piVar34" identifier != (pointer_expression "*piVar34" * identifier)) ))) )) ; (assignment_expression "piVar34 = (int *)piVar34[6]" identifier = (cast_expression "(int *)piVar34[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[6]" identifier [ number_literal ]))) ) (compound_statement "{\n          }" { })) })) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" identifier (argument_list "((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" ( (call_expression "(int3)((uint)iVar18 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" identifier = (binary_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)iVar24 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar24 >> 8)" ( (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar27,0)" identifier (argument_list "(uVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" identifier = (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" identifier (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" if (parenthesized_expression "(1 < piVar37[0x1a])" ( (binary_expression "1 < piVar37[0x1a]" number_literal < (subscript_expression "piVar37[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" { (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (do_statement "do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);" do (compound_statement "{\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "pcVar32 = (char *)(unaff_EDI + 0xc9455);" (assignment_expression "pcVar32 = (char *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(char *)(unaff_EDI + 0xc9455)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" if (parenthesized_expression "(*(char *)(*piVar37 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar37 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar37 + 0x4d)" * (cast_expression "(char *)(*piVar37 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar37 + 0x4d)" ( (binary_expression "*piVar37 + 0x4d" (pointer_expression "*piVar37" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" { (expression_statement "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);" (assignment_expression "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18)" identifier = (cast_expression "(char *)(piVar37[0x19] + iVar18 * 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar37[0x19] + iVar18 * 0x18)" ( (binary_expression "piVar37[0x19] + iVar18 * 0x18" (subscript_expression "piVar37[0x19]" identifier [ number_literal ]) + (binary_expression "iVar18 * 0x18" identifier * number_literal)) )))) ;) })) (if_statement "if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" if (parenthesized_expression "(*pcVar32 == 'm')" ( (binary_expression "*pcVar32 == 'm'" (pointer_expression "*pcVar32" * identifier) == (char_literal "'m'" ' character ')) )) (compound_statement "{\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }" { (if_statement "if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" if (parenthesized_expression "(local_134 == *(int *)(pcVar32 + 0xc))" ( (binary_expression "local_134 == *(int *)(pcVar32 + 0xc)" identifier == (pointer_expression "*(int *)(pcVar32 + 0xc)" * (cast_expression "(int *)(pcVar32 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0xc)" ( (binary_expression "pcVar32 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" { (if_statement "if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;" if (parenthesized_expression "(*(int *)(pcVar32 + 8) == piVar12[7])" ( (binary_expression "*(int *)(pcVar32 + 8) == piVar12[7]" (pointer_expression "*(int *)(pcVar32 + 8)" * (cast_expression "(int *)(pcVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 8)" ( (binary_expression "pcVar32 + 8" identifier + number_literal) )))) == (subscript_expression "piVar12[7]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) (for_statement "for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" for ( (assignment_expression "iVar22 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ; (binary_expression "iVar22 != 0" identifier != number_literal) ; (assignment_expression "iVar22 = *(int *)(iVar22 + 0x14)" identifier = (pointer_expression "*(int *)(iVar22 + 0x14)" * (cast_expression "(int *)(iVar22 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x14)" ( (binary_expression "iVar22 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" { (if_statement "if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;" if (parenthesized_expression "(*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c))" ( (binary_expression "*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)" (pointer_expression "*(int *)(pcVar32 + 8)" * (cast_expression "(int *)(pcVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 8)" ( (binary_expression "pcVar32 + 8" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar22 + 0x2c)" * (cast_expression "(int *)(iVar22 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) })) })) }) (else_clause "else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" else (if_statement "if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" if (parenthesized_expression "((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))" ( (binary_expression "(*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34)" (parenthesized_expression "(*pcVar32 == -0x5d)" ( (binary_expression "*pcVar32 == -0x5d" (pointer_expression "*pcVar32" * identifier) == number_literal) )) && (parenthesized_expression "(*(int **)(pcVar32 + 0x10) == piVar34)" ( (binary_expression "*(int **)(pcVar32 + 0x10) == piVar34" (pointer_expression "*(int **)(pcVar32 + 0x10)" * (cast_expression "(int **)(pcVar32 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x10)" ( (binary_expression "pcVar32 + 0x10" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar37[0x1a] != iVar18)" ( (binary_expression "piVar37[0x1a] != iVar18" (subscript_expression "piVar37[0x1a]" identifier [ number_literal ]) != identifier) )) ;) })) }) (else_clause "else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" else (compound_statement "{\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" { (labeled_statement "LAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;" statement_identifier : (expression_statement "piVar11[10] = piVar11[10] + 1;" (assignment_expression "piVar11[10] = piVar11[10] + 1" (subscript_expression "piVar11[10]" identifier [ number_literal ]) = (binary_expression "piVar11[10] + 1" (subscript_expression "piVar11[10]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x13)" * (cast_expression "(char *)((int)piVar11 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }" { (expression_statement "iVar18 = piVar11[0xb] + 1;" (assignment_expression "iVar18 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar22 = iVar18;" (assignment_expression "iVar22 = iVar18" identifier = identifier) ;) (labeled_statement "LAB_000f4ecb:\n          iVar22 = iVar22 + 1;" statement_identifier : (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;)) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" else (compound_statement "{\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" { (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" identifier = (binary_expression "cVar2 - 1" identifier - number_literal)) ;) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = piVar11[bVar1 + 0x24];" (assignment_expression "iVar18 = piVar11[bVar1 + 0x24]" identifier = (subscript_expression "piVar11[bVar1 + 0x24]" identifier [ (binary_expression "bVar1 + 0x24" identifier + number_literal) ])) ;) (if_statement "if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" { (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000f4ecb;" goto statement_identifier ;) })) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar2 - 2U" identifier - number_literal)) ;) (expression_statement "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier = (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier [ (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 2U)" ( (binary_expression "cVar2 - 2U" identifier - number_literal) ))) + number_literal) ])) ;) }))) (expression_statement "FUN_00073150(local_174);" (call_expression "FUN_00073150(local_174)" identifier (argument_list "(local_174)" ( identifier ))) ;) (expression_statement "iVar19 = FUN_00073150(0);" (assignment_expression "iVar19 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00072f80(local_174,iVar18);" (call_expression "FUN_00072f80(local_174,iVar18)" identifier (argument_list "(local_174,iVar18)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "FUN_00072f80(iVar18,iVar22);" (call_expression "FUN_00072f80(iVar18,iVar22)" identifier (argument_list "(iVar18,iVar22)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073150(iVar19);" (call_expression "FUN_00073150(iVar19)" identifier (argument_list "(iVar19)" ( identifier ))) ;) (expression_statement "iVar24 = local_144[0x1a];" (assignment_expression "iVar24 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = *local_144;" (assignment_expression "iVar25 = *local_144" identifier = (pointer_expression "*local_144" * identifier)) ;) (if_statement "if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar19 = iVar24 + -1;\n        }" { (expression_statement "iVar19 = iVar24 + -1;" (assignment_expression "iVar19 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar20 = unaff_EDI + 0xc9455;" (assignment_expression "iVar20 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" if (parenthesized_expression "(*(char *)(iVar25 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar25 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar25 + 0x4d)" * (cast_expression "(char *)(iVar25 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x4d)" ( (binary_expression "iVar25 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" { (expression_statement "iVar25 = iVar19 * 3;" (assignment_expression "iVar25 = iVar19 * 3" identifier = (binary_expression "iVar19 * 3" identifier * number_literal)) ;) (expression_statement "iVar20 = local_144[0x19] + iVar19 * 0x18;" (assignment_expression "iVar20 = local_144[0x19] + iVar19 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar19 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar19 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar20 + 8) = iVar24;" (assignment_expression "*(int *)(iVar20 + 8) = iVar24" (pointer_expression "*(int *)(iVar20 + 8)" * (cast_expression "(int *)(iVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar25 = extraout_ECX_00;" (assignment_expression "iVar25 = extraout_ECX_00" identifier = identifier) ;) (expression_statement "iVar24 = extraout_EDX;" (assignment_expression "iVar24 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" identifier (argument_list "((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" ( (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar24 >> 8)" ( (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" identifier = (binary_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)iVar25 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)iVar25 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar25 >> 8)" ( (binary_expression "(uint)iVar25 >> 8" (cast_expression "(uint)iVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar27,0)" identifier (argument_list "(uVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" identifier = (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" identifier (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (if_statement "if (iVar22 != 0) {\n          FUN_00045e10();\n        }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00045e10();\n        }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) }))) (labeled_statement "LAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" statement_identifier : (if_statement "if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" if (parenthesized_expression "(local_16c._0_1_ != false)" ( (binary_expression "local_16c._0_1_ != false" (field_expression "local_16c._0_1_" identifier . field_identifier) != false) )) (compound_statement "{\n        local_140 = (uint)(short)piVar12[10];\n      }" { (expression_statement "local_140 = (uint)(short)piVar12[10];" (assignment_expression "local_140 = (uint)(short)piVar12[10]" identifier = (cast_expression "(uint)(short)piVar12[10]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])))) ;) }))) }))) (expression_statement "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int *)(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (if_statement "if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" if (parenthesized_expression "((int)piVar34 < 1)" ( (binary_expression "(int)piVar34 < 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar18 = 0;\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" else (compound_statement "{\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(piVar12[1] + 0xf);" (assignment_expression "pbVar21 = (byte *)(piVar12[1] + 0xf)" identifier = (cast_expression "(byte *)(piVar12[1] + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0xf)" ( (binary_expression "piVar12[1] + 0xf" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "pbVar29 = pbVar21 + (int)piVar34 * 0x10;" (assignment_expression "pbVar29 = pbVar21 + (int)piVar34 * 0x10" identifier = (binary_expression "pbVar21 + (int)piVar34 * 0x10" identifier + (binary_expression "(int)piVar34 * 0x10" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);" do (compound_statement "{\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      }" { (expression_statement "bVar1 = *pbVar21;" (assignment_expression "bVar1 = *pbVar21" identifier = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar21 = pbVar21 + 0x10;" (assignment_expression "pbVar21 = pbVar21 + 0x10" identifier = (binary_expression "pbVar21 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);" (assignment_expression "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" identifier = (binary_expression "iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" identifier + (parenthesized_expression "((int)(uint)bVar1 >> 1 & 1U)" ( (binary_expression "(int)(uint)bVar1 >> 1 & 1U" (binary_expression "(int)(uint)bVar1 >> 1" (cast_expression "(int)(uint)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) & number_literal) )))) ;) }) while (parenthesized_expression "(pbVar29 != pbVar21)" ( (binary_expression "pbVar29 != pbVar21" identifier != identifier) )) ;) }))) (if_statement "if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((char)uVar35 == '\0')" ( (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" { (if_statement "if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;" if (parenthesized_expression "((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174))" ( (binary_expression "(param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((byte *)param_1[1] == local_174)" ( (binary_expression "(byte *)param_1[1] == local_174" (cast_expression "(byte *)param_1[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) == identifier) ))) )) (goto_statement "goto LAB_000f3caf;" goto statement_identifier ;)) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" identifier (argument_list "(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" ( identifier , (binary_expression "unaff_EDI + 0x6a7b3" identifier + number_literal) , identifier , (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (expression_statement "piVar34 = (int *)((int)piVar34 - iVar18);" (assignment_expression "piVar34 = (int *)((int)piVar34 - iVar18)" identifier = (cast_expression "(int *)((int)piVar34 - iVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 - iVar18)" ( (binary_expression "(int)piVar34 - iVar18" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((byte *)piVar34 != local_174)" ( (binary_expression "(byte *)piVar34 != local_174" (cast_expression "(byte *)piVar34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" { (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" identifier (argument_list "(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" ( identifier , (binary_expression "unaff_EDI + 0x77d19" identifier + number_literal) , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f3caf:\n    local_16c = 0;" statement_identifier : (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;)) (if_statement "if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" if (parenthesized_expression "((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0))" ( (binary_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)" (parenthesized_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0'))" ( (binary_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')" (parenthesized_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0)" ( (binary_expression "(*(byte *)(iVar26 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1c) & 0x80)" ( (binary_expression "*(byte *)(iVar26 + 0x1c) & 0x80" (pointer_expression "*(byte *)(iVar26 + 0x1c)" * (cast_expression "(byte *)(iVar26 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x1c)" ( (binary_expression "iVar26 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(piVar11[0x1e] == 0)" ( (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" { (expression_statement "local_16c = piVar11[0xb] + 1;" (assignment_expression "local_16c = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xb] = local_16c;" (assignment_expression "piVar11[0xb] = local_16c" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00073150(local_16c);" (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier ))) ;) })) (expression_statement "local_168 = (int *)0x0;" (assignment_expression "local_168 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" { (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" { (expression_statement "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);" (assignment_expression "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" identifier = (cast_expression "(int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" identifier (argument_list "(0,0xffffffff,0,&local_f0,&local_ec)" ( number_literal , number_literal , number_literal , (pointer_expression "&local_f0" & identifier) , (pointer_expression "&local_ec" & identifier) ))))) ;) })) (if_statement "if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;" if (parenthesized_expression "((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0))" ( (binary_expression "(*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" ( (comma_expression "local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0" (assignment_expression "local_168 = (int *)FUN_00055c10()" identifier = (cast_expression "(int *)FUN_00055c10()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055c10()" identifier (argument_list "()" ( ))))) , (binary_expression "local_168 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" identifier = identifier) ;) (if_statement "if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" if (parenthesized_expression "(0 < (int)piVar37)" ( (binary_expression "0 < (int)piVar37" number_literal < (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" { (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar30 = local_168;" (assignment_expression "piVar30 = local_168" identifier = identifier) ;) (do_statement "do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);" do (compound_statement "{\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar31 = piVar30 + 1;" (assignment_expression "piVar31 = piVar30 + 1" identifier = (binary_expression "piVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar30 = iVar22;" (assignment_expression "*piVar30 = iVar22" (pointer_expression "*piVar30" * identifier) = identifier) ;) (expression_statement "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);" (assignment_expression "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" identifier = (binary_expression "iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" identifier + (binary_expression "(uint)*(ushort *)(iVar18 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar18 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar18 = *(int *)(iVar18 + 0x14);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x14)" identifier = (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar31;" (assignment_expression "piVar30 = piVar31" identifier = identifier) ;) (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" identifier = identifier) ;) }) while (parenthesized_expression "(local_168 + (int)piVar37 != piVar31)" ( (binary_expression "local_168 + (int)piVar37 != piVar31" (binary_expression "local_168 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) })) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" { (labeled_statement "LAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" statement_identifier : (if_statement "if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }" { (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_160 = local_144[0x1a];" (assignment_expression "local_160 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" else (if_statement "if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_160 = 0;\n        iVar23 = 0;\n      }" { (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" else (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" { (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_160 = iVar23;" (assignment_expression "local_160 = iVar23" identifier = identifier) ;) })))))) (expression_statement "iVar18 = piVar11[0xe] + -1;" (assignment_expression "iVar18 = piVar11[0xe] + -1" identifier = (binary_expression "piVar11[0xe] + -1" (subscript_expression "piVar11[0xe]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xe] = iVar18;" (assignment_expression "piVar11[0xe] = iVar18" (subscript_expression "piVar11[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" if (parenthesized_expression "((local_e8[0] & 1) != 0)" ( (binary_expression "(local_e8[0] & 1) != 0" (parenthesized_expression "(local_e8[0] & 1)" ( (binary_expression "local_e8[0] & 1" (subscript_expression "local_e8[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" { (expression_statement "iVar22 = FUN_00045e40();" (assignment_expression "iVar22 = FUN_00045e40()" identifier = (call_expression "FUN_00045e40()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          FUN_00073150(iVar22);\n        }" { (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) }) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" else (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" { (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }" { (expression_statement "FUN_00072f80(local_140,iVar22,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,iVar22,piVar34,piVar34)" identifier (argument_list "(local_140,iVar22,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            FUN_000cb850();\n          }" else (compound_statement "{\n            FUN_000cb850();\n          }" { (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar24 = FUN_00073150(0);" (assignment_expression "iVar24 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (if_statement "if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar24 = local_144[0x1a] + -1;\n          }" { (expression_statement "iVar24 = local_144[0x1a] + -1;" (assignment_expression "iVar24 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" { (expression_statement "iVar25 = local_144[0x19] + iVar24 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar24 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar24 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar24 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar25 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar25 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" if (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" ( (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);" (assignment_expression "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" identifier = (cast_expression "(bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((bVar10 ^ 1U) & local_148 == (int *)0x0)" ( (binary_expression "(bVar10 ^ 1U) & local_148 == (int *)0x0" (parenthesized_expression "(bVar10 ^ 1U)" ( (binary_expression "bVar10 ^ 1U" identifier ^ number_literal) )) & (binary_expression "local_148 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);" do (compound_statement "{\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          }" { (if_statement "if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }" { (if_statement "if (bVar39) goto LAB_000f4c2c;" if (parenthesized_expression "(bVar39)" ( identifier )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (labeled_statement "LAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" statement_identifier : (if_statement "if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }" { (expression_statement "FUN_00072f80(iVar25,iVar22 + 1 + iVar19);" (call_expression "FUN_00072f80(iVar25,iVar22 + 1 + iVar19)" identifier (argument_list "(iVar25,iVar22 + 1 + iVar19)" ( identifier , (binary_expression "iVar22 + 1 + iVar19" (binary_expression "iVar22 + 1" identifier + number_literal) + identifier) ))) ;) }) (else_clause "else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" else (compound_statement "{\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" { (expression_statement "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];" (assignment_expression "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1]" identifier = (cast_expression "(undefined1 *)local_148[iVar25 * 5 + 1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_148[iVar25 * 5 + 1]" identifier [ (binary_expression "iVar25 * 5 + 1" (binary_expression "iVar25 * 5" identifier * number_literal) + number_literal) ]))) ;) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar24 = piVar11[0xb] + 1;" (assignment_expression "iVar24 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar24;" (assignment_expression "piVar11[0xb] = iVar24" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00073150(iVar24);" (call_expression "FUN_00073150(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "uVar3 = *puVar7;" (assignment_expression "uVar3 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(int *)(puVar7 + 0x1c) = iVar24;" (assignment_expression "*(int *)(puVar7 + 0x1c) = iVar24" (pointer_expression "*(int *)(puVar7 + 0x1c)" * (cast_expression "(int *)(puVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1c)" ( (binary_expression "puVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar7 = 0xa4;" (assignment_expression "*puVar7 = 0xa4" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[0x28] = uVar3;" (assignment_expression "puVar7[0x28] = uVar3" (subscript_expression "puVar7[0x28]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;" (assignment_expression "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" * (cast_expression "(uint *)(puVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" * (cast_expression "(uint *)(puVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) })))) }) (else_clause "else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" else (compound_statement "{\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" { (if_statement "if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" if (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n                iVar25 = 0;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" else (compound_statement "{\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(*param_1 + 4);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4)" identifier = (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (while_statement "while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" while (parenthesized_expression "(iVar19 != iVar24)" ( (binary_expression "iVar19 != iVar24" identifier != identifier) )) (compound_statement "{\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" { (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (if_statement "if (iVar25 == param_1[1]) goto LAB_000f4c2c;" if (parenthesized_expression "(iVar25 == param_1[1])" ( (binary_expression "iVar25 == param_1[1]" identifier == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8)" identifier = (pointer_expression "*(int *)(*param_1 + 4 + iVar25 * 8)" * (cast_expression "(int *)(*param_1 + 4 + iVar25 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4 + iVar25 * 8)" ( (binary_expression "*param_1 + 4 + iVar25 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar25 * 8" identifier * number_literal)) ))))) ;) })) (if_statement "if (!bVar39) goto LAB_000f4c96;" if (parenthesized_expression "(!bVar39)" ( (unary_expression "!bVar39" ! identifier) )) (goto_statement "goto LAB_000f4c96;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000f4c2c:\n              FUN_000cb850();" statement_identifier : (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);" (assignment_expression "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0)" identifier = (binary_expression "iVar25 + (uint)(param_1 == (int *)0x0)" identifier + (call_expression "(uint)(param_1 == (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(iVar19 < iVar24)" ( (binary_expression "iVar19 < iVar24" identifier < identifier) )) ;) })) (if_statement "if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" { (expression_statement "FUN_00073230();" (call_expression "FUN_00073230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);" (call_expression "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" identifier (argument_list "(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" ( number_literal , number_literal , identifier , (binary_expression "(iVar22 - iVar24) + -1" (parenthesized_expression "(iVar22 - iVar24)" ( (binary_expression "iVar22 - iVar24" identifier - identifier) )) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;" (assignment_expression "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1" identifier = (binary_expression "*(short *)((int)piVar12 + 0x2a) + 1" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "piVar34 = piVar12;" (assignment_expression "piVar34 = piVar12" identifier = identifier) ;) (if_statement "if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" if (parenthesized_expression "(iVar24 == 1)" ( (binary_expression "iVar24 == 1" identifier == number_literal) )) (compound_statement "{\n          FUN_0004b0a0();\n        }" { (expression_statement "FUN_0004b0a0();" (call_expression "FUN_0004b0a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" else (if_statement "if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" if (parenthesized_expression "(piVar11[7] < iVar24)" ( (binary_expression "piVar11[7] < iVar24" (subscript_expression "piVar11[7]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" { (expression_statement "piVar11[7] = iVar24;" (assignment_expression "piVar11[7] = iVar24" (subscript_expression "piVar11[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[8] = iVar22;" (assignment_expression "piVar11[8] = iVar22" (subscript_expression "piVar11[8]" identifier [ number_literal ]) = identifier) ;) })))) })) (if_statement "if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" { (if_statement "if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_00073150(iVar15);\n        }" { (expression_statement "FUN_00073150(iVar15);" (call_expression "FUN_00073150(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (if_statement "if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }" { (expression_statement "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);" (assignment_expression "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe])" identifier = (cast_expression "(int *)(uVar6 & 0x20 | piVar12[0xe])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 & 0x20 | piVar12[0xe])" ( (binary_expression "uVar6 & 0x20 | piVar12[0xe]" (binary_expression "uVar6 & 0x20" identifier & number_literal) | (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) )))) ;) (if_statement "if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" if (parenthesized_expression "(piVar37 == (int *)0x0)" ( (binary_expression "piVar37 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }" { (labeled_statement "LAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);" statement_identifier : (expression_statement "FUN_00072f80(local_12c,local_118,piVar34,piVar34);" (call_expression "FUN_00072f80(local_12c,local_118,piVar34,piVar34)" identifier (argument_list "(local_12c,local_118,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "local_138 = 1;" (assignment_expression "local_138 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" else (compound_statement "{\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" else (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" { (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }" { (expression_statement "FUN_00072f80(local_140,local_12c,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,local_12c,piVar34,piVar34)" identifier (argument_list "(local_140,local_12c,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" else (if_statement "if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }" { (if_statement "if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;" if (parenthesized_expression "((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0))" ( (binary_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)" (parenthesized_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n')" ( (binary_expression "*(char *)local_148[local_140 * 5 + 1] == 'n'" (pointer_expression "*(char *)local_148[local_140 * 5 + 1]" * (cast_expression "(char *)local_148[local_140 * 5 + 1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_148[local_140 * 5 + 1]" identifier [ (binary_expression "local_140 * 5 + 1" (binary_expression "local_140 * 5" identifier * number_literal) + number_literal) ]))) == (char_literal "'n'" ' character ')) )) && (parenthesized_expression "(piVar37 = local_148, piVar12[0xe] == 0)" ( (comma_expression "piVar37 = local_148, piVar12[0xe] == 0" (assignment_expression "piVar37 = local_148" identifier = identifier) , (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal)) ))) )) (goto_statement "goto LAB_000f4a81;" goto statement_identifier ;)) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            FUN_00073150(local_12c);\n          }" else (compound_statement "{\n            FUN_00073150(local_12c);\n          }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) }))))) (if_statement "if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }" { (expression_statement "iVar13 = FUN_00073150(0);" (assignment_expression "iVar13 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00072f80(local_12c,local_118);" (call_expression "FUN_00072f80(local_12c,local_118)" identifier (argument_list "(local_12c,local_118)" ( identifier , identifier ))) ;) (if_statement "if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar13 = local_144[0x1a] + -1;\n            }" { (expression_statement "iVar13 = local_144[0x1a] + -1;" (assignment_expression "iVar13 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" { (expression_statement "iVar22 = local_144[0x19] + iVar13 * 0x18;" (assignment_expression "iVar22 = local_144[0x19] + iVar13 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar13 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar22 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" else (compound_statement "{\n            FUN_00073150(local_144[0x1a] + 2);\n          }" { (expression_statement "FUN_00073150(local_144[0x1a] + 2);" (call_expression "FUN_00073150(local_144[0x1a] + 2)" identifier (argument_list "(local_144[0x1a] + 2)" ( (binary_expression "local_144[0x1a] + 2" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal) ))) ;) }))) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "piVar37 = local_144;" (assignment_expression "piVar37 = local_144" identifier = identifier) ;) }))) (if_statement "if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }" if (parenthesized_expression "(0 < local_118)" ( (binary_expression "0 < local_118" number_literal < identifier) )) (compound_statement "{\n          FUN_00073150(local_12c);\n        }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) })) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" if (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" ( (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" { (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));" do (compound_statement "{\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          }" { (if_statement "if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" if (parenthesized_expression "((int *)(int)(short)piVar12[10] == piVar37)" ( (binary_expression "(int *)(int)(short)piVar12[10] == piVar37" (cast_expression "(int *)(int)(short)piVar12[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)piVar12[10]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])))) == identifier) )) (compound_statement "{\n              FUN_00073150(0);\n            }" { (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" else (compound_statement "{\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" { (if_statement "if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }" { (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" identifier = (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }" if (parenthesized_expression "((*(byte *)(iVar13 + 0xf) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0xf) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0xf) & 2)" ( (binary_expression "*(byte *)(iVar13 + 0xf) & 2" (pointer_expression "*(byte *)(iVar13 + 0xf)" * (cast_expression "(byte *)(iVar13 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf)" ( (binary_expression "iVar13 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }" { (expression_statement "iVar22 = (int)piVar37 - local_134;" (assignment_expression "iVar22 = (int)piVar37 - local_134" identifier = (binary_expression "(int)piVar37 - local_134" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (if_statement "if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;" if (parenthesized_expression "((-1 < iVar22) && (local_174 != (byte *)0x0))" ( (binary_expression "(-1 < iVar22) && (local_174 != (byte *)0x0)" (parenthesized_expression "(-1 < iVar22)" ( (binary_expression "-1 < iVar22" number_literal < identifier) )) && (parenthesized_expression "(local_174 != (byte *)0x0)" ( (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000f47c2;" goto statement_identifier ;)) }) (else_clause "else {\n                  local_134 = local_134 + 1;\n                }" else (compound_statement "{\n                  local_134 = local_134 + 1;\n                }" { (expression_statement "local_134 = local_134 + 1;" (assignment_expression "local_134 = local_134 + 1" identifier = (binary_expression "local_134 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" else (compound_statement "{\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" { (if_statement "if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" if (parenthesized_expression "(0 < param_1[1])" ( (binary_expression "0 < param_1[1]" number_literal < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "piVar34 = *(int **)(*param_1 + 4);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4)" identifier = (pointer_expression "*(int **)(*param_1 + 4)" * (cast_expression "(int **)(*param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (while_statement "while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" while (parenthesized_expression "(piVar34 != piVar37)" ( (binary_expression "piVar34 != piVar37" identifier != identifier) )) (compound_statement "{\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (if_statement "if (iVar22 == param_1[1]) goto LAB_000f47ad;" if (parenthesized_expression "(iVar22 == param_1[1])" ( (binary_expression "iVar22 == param_1[1]" identifier == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f47ad;" goto statement_identifier ;)) (expression_statement "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8)" identifier = (pointer_expression "*(int **)(*param_1 + 4 + iVar22 * 8)" * (cast_expression "(int **)(*param_1 + 4 + iVar22 * 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 4 + iVar22 * 8)" ( (binary_expression "*param_1 + 4 + iVar22 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar22 * 8" identifier * number_literal)) ))))) ;) })) (if_statement "if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" if (parenthesized_expression "(local_174 != (byte *)0x0)" ( (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" { (labeled_statement "LAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" statement_identifier : (if_statement "if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }" { (expression_statement "FUN_00072f80(iVar22,iVar16 + (int)piVar37);" (call_expression "FUN_00072f80(iVar22,iVar16 + (int)piVar37)" identifier (argument_list "(iVar22,iVar16 + (int)piVar37)" ( identifier , (binary_expression "iVar16 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" else (if_statement "if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      FUN_000cb850();\n                    }" { (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" else (if_statement "if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(local_170 != iVar16)" ( (binary_expression "local_170 != iVar16" identifier != identifier) )) (compound_statement "{\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" { (expression_statement "FUN_00073150(iVar16 + (int)piVar37);" (call_expression "FUN_00073150(iVar16 + (int)piVar37)" identifier (argument_list "(iVar16 + (int)piVar37)" ( (binary_expression "iVar16 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) }))))))) (goto_statement "goto LAB_000f4756;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];" statement_identifier : (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" identifier = (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x17) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x17) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x17)" * (cast_expression "(char *)((int)piVar11 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x17)" ( (binary_expression "(int)piVar11 + 0x17" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000f474b:\n                FUN_000cb850();\n              }" { (labeled_statement "LAB_000f474b:\n                FUN_000cb850();" statement_identifier : (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" else (compound_statement "{\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" { (expression_statement "local_9c = CONCAT31(local_9c._1_3_,2);" (assignment_expression "local_9c = CONCAT31(local_9c._1_3_,2)" identifier = (call_expression "CONCAT31(local_9c._1_3_,2)" identifier (argument_list "(local_9c._1_3_,2)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_b0._4_4_ = unaff_EDI + -0xadd67;" (assignment_expression "local_b0._4_4_ = unaff_EDI + -0xadd67" (field_expression "local_b0._4_4_" identifier . field_identifier) = (binary_expression "unaff_EDI + -0xadd67" identifier + number_literal)) ;) (expression_statement "local_a8[0] = unaff_EDI + -0xb66d7;" (assignment_expression "local_a8[0] = unaff_EDI + -0xb66d7" (subscript_expression "local_a8[0]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + -0xb66d7" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" if (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" ( (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" { (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_9c == '\0') goto LAB_000f474b;" if (parenthesized_expression "((char)local_9c == '\0')" ( (binary_expression "(char)local_9c == '\0'" (cast_expression "(char)local_9c" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000f474b;" goto statement_identifier ;)) })) (expression_statement "FUN_00087b20();" (call_expression "FUN_00087b20()" identifier (argument_list "()" ( ))) ;) }))) }))) (labeled_statement "LAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);" statement_identifier : (expression_statement "piVar37 = (int *)((int)piVar37 + 1);" (assignment_expression "piVar37 = (int *)((int)piVar37 + 1)" identifier = (cast_expression "(int *)((int)piVar37 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar37 + 1)" ( (binary_expression "(int)piVar37 + 1" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a))" ( (binary_expression "(int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a)" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) ;) })) (if_statement "if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }" { (expression_statement "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);" (call_expression "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" identifier (argument_list "(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" ( identifier , identifier , identifier , number_literal , (binary_expression "~local_140 >> 0x1f" (unary_expression "~local_140" ~ identifier) >> number_literal) , (binary_expression "param_2 & 0xff" identifier & number_literal) , identifier , (pointer_expression "&local_b0" & identifier) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "FUN_000ec820(iVar15,0,0);" (call_expression "FUN_000ec820(iVar15,0,0)" identifier (argument_list "(iVar15,0,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" if (parenthesized_expression "((int *)local_b0 == (int *)0x0)" ( (binary_expression "(int *)local_b0 == (int *)0x0" (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar39 = true;\n          }" { (expression_statement "bVar39 = true;" (assignment_expression "bVar39 = true" identifier = true) ;) }) (else_clause "else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" else (compound_statement "{\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" { (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (if_statement "if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" if (parenthesized_expression "((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0))" ( (binary_expression "(iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" ( (comma_expression "bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (assignment_expression "bVar39 = true" identifier = true) , (binary_expression "(*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1d) & 0x40)" ( (binary_expression "*(byte *)(iVar26 + 0x1d) & 0x40" (pointer_expression "*(byte *)(iVar26 + 0x1d)" * (cast_expression "(byte *)(iVar26 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x1d)" ( (binary_expression "iVar26 + 0x1d" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" { (expression_statement "iVar26 = FUN_00049430();" (assignment_expression "iVar26 = FUN_00049430()" identifier = (call_expression "FUN_00049430()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar39 = *(int *)(iVar26 + 8) == 0;" (assignment_expression "bVar39 = *(int *)(iVar26 + 8) == 0" identifier = (binary_expression "*(int *)(iVar26 + 8) == 0" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) == number_literal)) ;) })) }))) (expression_statement "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);" (call_expression "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" identifier (argument_list "(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" ( identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" else (compound_statement "{\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" { (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" for ( (assignment_expression "piVar34 = (int *)piVar12[0x10]" identifier = (cast_expression "(int *)piVar12[0x10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x10]" identifier [ number_literal ]))) ; (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar26 != *piVar34))" ( (binary_expression "piVar34 != (int *)0x0 && (iVar26 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar26 != *piVar34)" ( (binary_expression "iVar26 != *piVar34" identifier != (pointer_expression "*piVar34" * identifier)) ))) )) ; (assignment_expression "piVar34 = (int *)piVar34[6]" identifier = (cast_expression "(int *)piVar34[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[6]" identifier [ number_literal ]))) ) (compound_statement "{\n          }" { })) (expression_statement "FUN_0009a0c0();" (call_expression "FUN_0009a0c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);" (call_expression "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" identifier (argument_list "(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" ( (binary_expression "*(short *)((int)piVar12 + 0x2a) + 2" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_00062750(0xfffffff4);" (call_expression "FUN_00062750(0xfffffff4)" identifier (argument_list "(0xfffffff4)" ( number_literal ))) ;) (expression_statement "uVar28 = (undefined2)param_2;" (assignment_expression "uVar28 = (undefined2)param_2" identifier = (cast_expression "(undefined2)param_2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (if_statement "if (param_2 == 0xb) {\n            uVar28 = 2;\n          }" if (parenthesized_expression "(param_2 == 0xb)" ( (binary_expression "param_2 == 0xb" identifier == number_literal) )) (compound_statement "{\n            uVar28 = 2;\n          }" { (expression_statement "uVar28 = 2;" (assignment_expression "uVar28 = 2" identifier = number_literal) ;) })) (if_statement "if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" if (parenthesized_expression "(0 < local_144[0x1a])" ( (binary_expression "0 < local_144[0x1a]" number_literal < (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" { (expression_statement "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" * (cast_expression "(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" ( (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19] + -0x16" (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19]" (binary_expression "local_144[0x1a] * 0x18" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "local_144[0x19]" identifier [ number_literal ])) + number_literal) )))) = identifier) ;) })) (expression_statement "piVar34 = (int *)piVar11[0x1d];" (assignment_expression "piVar34 = (int *)piVar11[0x1d]" identifier = (cast_expression "(int *)piVar11[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }" if (parenthesized_expression "((int *)piVar11[0x1d] == (int *)0x0)" ( (binary_expression "(int *)piVar11[0x1d] == (int *)0x0" (cast_expression "(int *)piVar11[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1d]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar34 = piVar11;\n          }" { (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)((int)piVar34 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)piVar34 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)piVar34 + 0x15)" * (cast_expression "(undefined1 *)((int)piVar34 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 0x15)" ( (binary_expression "(int)piVar34 + 0x15" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) })) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00073150(1);\n      }" { (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (if_statement "if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" { (expression_statement "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);" (call_expression "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" identifier (argument_list "(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" ( number_literal , number_literal , identifier , (binary_expression "local_110 - *(short *)((int)piVar12 + 0x2a)" identifier - (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , identifier , identifier ))) ;) })) (expression_statement "FUN_0006dec0();" (call_expression "FUN_0006dec0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }" { (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" identifier (argument_list "(local_160)" ( identifier ))) ;) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" if (parenthesized_expression "(iVar23 < 0)" ( (binary_expression "iVar23 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" { (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" { (expression_statement "iVar26 = iVar23 * 0x18 + local_144[0x19];" (assignment_expression "iVar26 = iVar23 * 0x18 + local_144[0x19]" identifier = (binary_expression "iVar23 * 0x18 + local_144[0x19]" (binary_expression "iVar23 * 0x18" identifier * number_literal) + (subscript_expression "local_144[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" else (if_statement "if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" if (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" { (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" identifier (argument_list "(local_160)" ( identifier ))) ;) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" if (parenthesized_expression "(iVar23 < 0)" ( (binary_expression "iVar23 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" { (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" { (expression_statement "iVar26 = local_144[0x19] + iVar23 * 0x18;" (assignment_expression "iVar26 = local_144[0x19] + iVar23 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar23 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar23 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) })))) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }" if (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         )" ( (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0))" ( (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar11[0x1e] == 0)" ( (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(piVar11[0x1c] != 0)" ( (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        FUN_000916b0();\n      }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" { (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "FUN_00061230();" (call_expression "FUN_00061230()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" { (expression_statement "FUN_0006fe70(unaff_EDI + 0x6a7cc,0);" (call_expression "FUN_0006fe70(unaff_EDI + 0x6a7cc,0)" identifier (argument_list "(unaff_EDI + 0x6a7cc,0)" ( (binary_expression "unaff_EDI + 0x6a7cc" identifier + number_literal) , number_literal ))) ;) })) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (if_statement "if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }" { (expression_statement "*(int *)(iVar23 + 0x30) = local_f0;" (assignment_expression "*(int *)(iVar23 + 0x30) = local_f0" (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_3[5] = iVar23;" (assignment_expression "param_3[5] = iVar23" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[7] = local_f0;" (assignment_expression "param_3[7] = local_f0" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[6] = iVar16;" (assignment_expression "param_3[6] = iVar16" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar34 = (int *)*param_3;" (assignment_expression "piVar34 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "param_3[8] = local_ec;" (assignment_expression "param_3[8] = local_ec" (subscript_expression "param_3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" if (parenthesized_expression "(piVar34 != (int *)0x0)" ( (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);" do (compound_statement "{\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        }" { (expression_statement "*(undefined4 *)((int)local_a8 + uVar35) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + uVar35) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + uVar35)" * (cast_expression "(undefined4 *)((int)local_a8 + uVar35)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + uVar35)" ( (binary_expression "(int)local_a8 + uVar35" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" identifier = (binary_expression "uVar35 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < 0x18)" ( (binary_expression "uVar35 < 0x18" identifier < number_literal) )) ;) (expression_statement "local_b0 = uVar41;" (assignment_expression "local_b0 = uVar41" identifier = identifier) ;) (if_statement "if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" if (parenthesized_expression "(0 < *piVar34)" ( (binary_expression "0 < *piVar34" number_literal < (pointer_expression "*piVar34" * identifier)) )) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);" do (compound_statement "{\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "iVar22 = FUN_00089330();" (assignment_expression "iVar22 = FUN_00089330()" identifier = (call_expression "FUN_00089330()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar22 != 0) goto LAB_000f3d98;" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < *piVar34)" ( (binary_expression "iVar18 < *piVar34" identifier < (pointer_expression "*piVar34" * identifier)) )) ;) })) (expression_statement "iVar18 = FUN_00089330();" (assignment_expression "iVar18 = FUN_00089330()" identifier = (call_expression "FUN_00089330()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" { (expression_statement "iVar18 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (uint *)*param_3;" (assignment_expression "puVar8 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar23 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(iVar23 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar23 + 0x30)" * (cast_expression "(undefined4 *)(iVar23 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" if (parenthesized_expression "((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))))" ( (binary_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" (parenthesized_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1))" ( (binary_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)" (parenthesized_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar18 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar18 + 0x24) & 0x20)" ( (binary_expression "*(byte *)(iVar18 + 0x24) & 0x20" (pointer_expression "*(byte *)(iVar18 + 0x24)" * (cast_expression "(byte *)(iVar18 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*puVar8 != 1)" ( (binary_expression "*puVar8 != 1" (pointer_expression "*puVar8" * identifier) != number_literal) ))) )) || (parenthesized_expression "((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" ( (parenthesized_expression "(*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))" ( (binary_expression "*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)" (binary_expression "*(char *)puVar8[1] != -0x62" (pointer_expression "*(char *)puVar8[1]" * (cast_expression "(char *)puVar8[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) != number_literal) || (parenthesized_expression "(*(int *)((char *)puVar8[1] + 0x20) != -1)" ( (binary_expression "*(int *)((char *)puVar8[1] + 0x20) != -1" (pointer_expression "*(int *)((char *)puVar8[1] + 0x20)" * (cast_expression "(int *)((char *)puVar8[1] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)puVar8[1] + 0x20)" ( (binary_expression "(char *)puVar8[1] + 0x20" (cast_expression "(char *)puVar8[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ])) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" { (expression_statement "piVar37 = (int *)local_90;" (assignment_expression "piVar37 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" for ( (assignment_expression "iVar23 = 0x1c" identifier = number_literal) ; (binary_expression "iVar23 != 0" identifier != number_literal) ; (assignment_expression "iVar23 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ) (compound_statement "{\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" { (expression_statement "*piVar37 = 0;" (assignment_expression "*piVar37 = 0" (pointer_expression "*piVar37" * identifier) = number_literal) ;) (expression_statement "piVar37 = piVar37 + (uint)bVar40 * -2 + 1;" (assignment_expression "piVar37 = piVar37 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "piVar37 + (uint)bVar40 * -2 + 1" (binary_expression "piVar37 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_58[0] = 0x9e;" (assignment_expression "local_58[0] = 0x9e" (subscript_expression "local_58[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_90[0] = 0x66;" (assignment_expression "local_90[0] = 0x66" (subscript_expression "local_90[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" identifier = (cast_expression "(int *)local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" for ( (assignment_expression "iVar23 = *(int *)(iVar18 + 8)" identifier = (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) ))))) ; (binary_expression "iVar23 != 0" identifier != number_literal) ; (assignment_expression "iVar23 = *(int *)(iVar23 + 0x14)" identifier = (pointer_expression "*(int *)(iVar23 + 0x14)" * (cast_expression "(int *)(iVar23 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" { (if_statement "if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" if (parenthesized_expression "((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35))" ( (binary_expression "(*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" (parenthesized_expression "(*(char *)(iVar23 + 0x36) != '\0')" ( (binary_expression "*(char *)(iVar23 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar23 + 0x36)" * (cast_expression "(char *)(iVar23 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x36)" ( (binary_expression "iVar23 + 0x36" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" ( (comma_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar23 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x32)" ( (binary_expression "iVar23 + 0x32" identifier + number_literal) ))))) , (binary_expression "*puVar8 == uVar35" (pointer_expression "*puVar8" * identifier) == identifier)) ))) )) (compound_statement "{\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" { (expression_statement "iVar22 = *(int *)(iVar23 + 0x24);" (assignment_expression "iVar22 = *(int *)(iVar23 + 0x24)" identifier = (pointer_expression "*(int *)(iVar23 + 0x24)" * (cast_expression "(int *)(iVar23 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x24)" ( (binary_expression "iVar23 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }" { (labeled_statement "LAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" statement_identifier : (if_statement "if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" { (labeled_statement "LAB_000f50dd:\n                    param_3[4] = iVar23;" statement_identifier : (expression_statement "param_3[4] = iVar23;" (assignment_expression "param_3[4] = iVar23" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;)) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) }))) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" { (expression_statement "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);" (assignment_expression "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x20) + uVar27 * 4)" ( (binary_expression "*(int *)(iVar23 + 0x20) + uVar27 * 4" (pointer_expression "*(int *)(iVar23 + 0x20)" * (cast_expression "(int *)(iVar23 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) + (binary_expression "uVar27 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" if (parenthesized_expression "(*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2)" ( (binary_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2" (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" * (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) )))) + (binary_expression "uVar27 * 2" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }" { (expression_statement "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);" (assignment_expression "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" * (cast_expression "(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" ( (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4" (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14" (pointer_expression "*(int *)(iVar23 + 0x28)" * (cast_expression "(int *)(iVar23 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x28)" ( (binary_expression "iVar23 + 0x28" identifier + number_literal) )))) + (binary_expression "uVar27 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" identifier = identifier) ;) (if_statement "if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" if (parenthesized_expression "((char)*piVar37 != 'f')" ( (binary_expression "(char)*piVar37 != 'f'" (cast_expression "(char)*piVar37" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*piVar37" * identifier)) != (char_literal "'f'" ' character ')) )) (compound_statement "{\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" { (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_84 = piVar37;" (assignment_expression "local_84 = piVar37" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" else (compound_statement "{\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" { (expression_statement "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);" (assignment_expression "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" identifier = (cast_expression "(int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" * (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) )))) + (binary_expression "uVar27 * 2" identifier * number_literal)) )))))) ;) (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" identifier = (cast_expression "(int *)local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" { (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" identifier = (call_expression "FUN_000872a0(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar22 = extraout_ECX_02;" (assignment_expression "iVar22 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (iVar18 < 2) break;" if (parenthesized_expression "(iVar18 < 2)" ( (binary_expression "iVar18 < 2" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_160 = local_160 + 1;" (assignment_expression "local_160 = local_160 + 1" identifier = (binary_expression "local_160 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 == local_160) goto LAB_000f4fe0;" if (parenthesized_expression "(uVar35 == local_160)" ( (binary_expression "uVar35 == local_160" identifier == identifier) )) (goto_statement "goto LAB_000f4fe0;" goto statement_identifier ;)) })) (if_statement "if ((int)uVar35 <= (int)local_160) break;" if (parenthesized_expression "((int)uVar35 <= (int)local_160)" ( (binary_expression "(int)uVar35 <= (int)local_160" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_160" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 == uVar27) goto LAB_000f50dd;" if (parenthesized_expression "(uVar35 == uVar27)" ( (binary_expression "uVar35 == uVar27" identifier == identifier) )) (goto_statement "goto LAB_000f50dd;" goto statement_identifier ;)) })) }) (else_clause "else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" else (if_statement "if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" { (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" identifier = (call_expression "FUN_000872a0(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar22 = extraout_ECX_01;" (assignment_expression "iVar22 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" { (expression_statement "uVar35 = (uint)*(ushort *)(iVar23 + 0x32);" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar23 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x32)" ( (binary_expression "iVar23 + 0x32" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000f502a;" goto statement_identifier ;) })) })))) })) (labeled_statement "LAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" statement_identifier : (ERROR "}" }) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" identifier (argument_list "(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" ( identifier , (binary_expression "unaff_EDI + 0x77d7d" identifier + number_literal) , identifier , identifier ))) ;)) })) })) })) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) })) (expression_statement "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);" (call_expression "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" identifier (argument_list "(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" ( identifier , (binary_expression "&UNK_00077d4d + unaff_EDI" (pointer_expression "&UNK_00077d4d" & identifier) + identifier) , (pointer_expression "*piVar12" * identifier) , identifier ))) ;) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_148 != (int *)0x0) goto LAB_000f3688;" if (parenthesized_expression "(local_148 != (int *)0x0)" ( (binary_expression "local_148 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f3688;" goto statement_identifier ;)) }) (else_clause "else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" else (compound_statement "{\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" { (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;" statement_identifier : (if_statement "if (param_3 == (int *)0x0) goto LAB_000f370c;" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f370c;" goto statement_identifier ;))) }))) (labeled_statement "LAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }" statement_identifier : (if_statement "if (*param_3 != 0) {\n    FUN_00063e30();\n  }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n    FUN_00063e30();\n  }" { (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (param_3[1] != 0) {\n    FUN_00063d60();\n  }" if (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063d60();\n  }" { (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_3[2] != 0) {\n    FUN_00063e30();\n  }" if (parenthesized_expression "(param_3[2] != 0)" ( (binary_expression "param_3[2] != 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063e30();\n  }" { (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_3[3] != 0) {\n    FUN_00063d60();\n  }" if (parenthesized_expression "(param_3[3] != 0)" ( (binary_expression "param_3[3] != 0" (subscript_expression "param_3[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063d60();\n  }" { (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" statement_identifier : (if_statement "if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" if (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00063a90();\n  }" { (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_0005b000();\n  }" { (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }" if (parenthesized_expression "(local_17c != (int *)0x0)" ( (binary_expression "local_17c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00044090();\n  }" { (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) })))
(translation_unit "void sqlite3Insert(Parse *pParse,SrcList *pTabList,Select *pSelect,IdList *pColumn,int onError,\n                  Upsert *pUpsert)\n\n{\n  byte bVar1;\n  u8 uVar2;\n  ushort uVar3;\n  int iVar4;\n  sqlite3 *db;\n  Select *pSVar5;\n  byte *pbVar6;\n  ExprList *pEVar7;\n  Vdbe *pVVar8;\n  Vdbe *p;\n  bool bVar9;\n  undefined8 uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  Parse *pParse_00;\n  Table *pTab;\n  int iVar13;\n  Trigger *pTrigger;\n  uint uVar14;\n  int *piVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  u8 *puVar18;\n  Trigger *pTVar19;\n  Table *pTVar20;\n  Index *pIVar21;\n  AutoincInfo *pAVar22;\n  Parse *pPVar23;\n  HashElem *pHVar24;\n  Table *pTVar25;\n  Op *pOVar26;\n  VTable *pVVar27;\n  Table *p_00;\n  sqlite3 *extraout_ECX;\n  sqlite3 *psVar28;\n  uint uVar29;\n  int iVar30;\n  uint *pHash;\n  int nReg;\n  Expr *pEVar31;\n  Expr *extraout_ECX_00;\n  Expr *extraout_ECX_01;\n  sqlite3 *extraout_ECX_02;\n  sqlite3 *psVar32;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  sqlite3 *extraout_ECX_05;\n  bool bVar33;\n  u16 uVar34;\n  SrcList *pList;\n  byte *pbVar35;\n  int extraout_EDX;\n  AutoincInfo *pAVar36;\n  Table **ppTVar37;\n  Column *pCVar38;\n  sqlite3 *extraout_EDX_00;\n  ushort uVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  Table *pTVar42;\n  Expr *pB;\n  uint uVar43;\n  u8 *puVar44;\n  Index *pSrc;\n  int unaff_EDI;\n  ExprList_item *pEVar45;\n  Vdbe **ppVVar46;\n  Vdbe *pVVar47;\n  Table *pTVar48;\n  int in_GS_OFFSET;\n  byte bVar49;\n  undefined8 uVar50;\n  int p3;\n  Table *target;\n  char *p3_00;\n  char *in_stack_fffffe6c;\n  char *pcVar51;\n  undefined4 uVar52;\n  Parse *in_stack_fffffe74;\n  Table *in_stack_fffffe78;\n  int in_stack_fffffe7c;\n  _func_int_Walker_ptr_Expr_ptr *p_Var53;\n  AutoincInfo *local_17c;\n  sqlite3 *local_174;\n  undefined1 *local_170;\n  Table *local_16c;\n  AutoincInfo *local_168;\n  uint local_160;\n  Table *local_158;\n  SrcList *local_14c;\n  Vdbe *local_148;\n  Vdbe *local_144;\n  uint local_140;\n  int local_138;\n  ExprList_item *local_134;\n  uint local_130;\n  Table *local_12c;\n  Table *local_118;\n  Table *local_110;\n  int iDataCur;\n  int iIdxCur;\n  int tmask;\n  SelectDest dest;\n  Walker w;\n  NameContext sNC;\n  Expr sCol [2];\n  \n  bVar49 = 0;\n  uVar50 = __x86_get_pc_thunk_di();\n  pList = SUB84(uVar50,4);\n  pParse_00 = (Parse *)uVar50;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  db = pParse_00->db;\n  iDataCur = 0;\n  iIdxCur = 0;\n  local_158 = p_00;\n  if ((pParse_00->nErr == 0) && (db->mallocFailed == '\0')) {\n    dest.iSDParm = 0;\n    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    pcVar51 = (char *)0xf360c;\n    pTab = sqlite3SrcListLookup(pParse_00,pList);\n    if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (Vdbe *)0x0;\nLAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }\n    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }\n    uVar14 = pTab->tabFlags;\n    pTVar42 = (Table *)&tmask;\n    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);\n    pSVar5 = pTab->pSelect;\n    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);\n    if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;\n    if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }\n    sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);\n    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = (Table *)0x0;\n    if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }\n    local_110 = (Table *)pParse_00->nMem;\n    iVar13 = (int)&local_110->zName + pTab->nCol + 1;\n    pTVar20 = (Table *)((int)&local_110->zName + 1);\n    pParse_00->nMem = iVar13;\n    local_12c = pTVar20;\n    if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }\n    uVar14 = uVar14 & 0x20;\n    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }\n    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);\n    if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }\n    iVar41 = (int)pTab->nCol;\n    if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }\n    if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\n    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = (Table *)0x0;\n    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }\n    local_168 = (AutoincInfo *)0x0;\n    if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }\n    uVar10._4_4_ = sNC.pSrcList;\n    uVar10._0_4_ = sNC.pParse;\n    if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }\n  if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }\n  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }\n  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }\n  sqlite3DbFreeNN(db,pSelect);\nLAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }\n  if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }\n  if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }\nLAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" (function_definition "void sqlite3Insert(Parse *pParse,SrcList *pTabList,Select *pSelect,IdList *pColumn,int onError,\n                  Upsert *pUpsert)\n\n{\n  byte bVar1;\n  u8 uVar2;\n  ushort uVar3;\n  int iVar4;\n  sqlite3 *db;\n  Select *pSVar5;\n  byte *pbVar6;\n  ExprList *pEVar7;\n  Vdbe *pVVar8;\n  Vdbe *p;\n  bool bVar9;\n  undefined8 uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  Parse *pParse_00;\n  Table *pTab;\n  int iVar13;\n  Trigger *pTrigger;\n  uint uVar14;\n  int *piVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  u8 *puVar18;\n  Trigger *pTVar19;\n  Table *pTVar20;\n  Index *pIVar21;\n  AutoincInfo *pAVar22;\n  Parse *pPVar23;\n  HashElem *pHVar24;\n  Table *pTVar25;\n  Op *pOVar26;\n  VTable *pVVar27;\n  Table *p_00;\n  sqlite3 *extraout_ECX;\n  sqlite3 *psVar28;\n  uint uVar29;\n  int iVar30;\n  uint *pHash;\n  int nReg;\n  Expr *pEVar31;\n  Expr *extraout_ECX_00;\n  Expr *extraout_ECX_01;\n  sqlite3 *extraout_ECX_02;\n  sqlite3 *psVar32;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  sqlite3 *extraout_ECX_05;\n  bool bVar33;\n  u16 uVar34;\n  SrcList *pList;\n  byte *pbVar35;\n  int extraout_EDX;\n  AutoincInfo *pAVar36;\n  Table **ppTVar37;\n  Column *pCVar38;\n  sqlite3 *extraout_EDX_00;\n  ushort uVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  Table *pTVar42;\n  Expr *pB;\n  uint uVar43;\n  u8 *puVar44;\n  Index *pSrc;\n  int unaff_EDI;\n  ExprList_item *pEVar45;\n  Vdbe **ppVVar46;\n  Vdbe *pVVar47;\n  Table *pTVar48;\n  int in_GS_OFFSET;\n  byte bVar49;\n  undefined8 uVar50;\n  int p3;\n  Table *target;\n  char *p3_00;\n  char *in_stack_fffffe6c;\n  char *pcVar51;\n  undefined4 uVar52;\n  Parse *in_stack_fffffe74;\n  Table *in_stack_fffffe78;\n  int in_stack_fffffe7c;\n  _func_int_Walker_ptr_Expr_ptr *p_Var53;\n  AutoincInfo *local_17c;\n  sqlite3 *local_174;\n  undefined1 *local_170;\n  Table *local_16c;\n  AutoincInfo *local_168;\n  uint local_160;\n  Table *local_158;\n  SrcList *local_14c;\n  Vdbe *local_148;\n  Vdbe *local_144;\n  uint local_140;\n  int local_138;\n  ExprList_item *local_134;\n  uint local_130;\n  Table *local_12c;\n  Table *local_118;\n  Table *local_110;\n  int iDataCur;\n  int iIdxCur;\n  int tmask;\n  SelectDest dest;\n  Walker w;\n  NameContext sNC;\n  Expr sCol [2];\n  \n  bVar49 = 0;\n  uVar50 = __x86_get_pc_thunk_di();\n  pList = SUB84(uVar50,4);\n  pParse_00 = (Parse *)uVar50;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  db = pParse_00->db;\n  iDataCur = 0;\n  iIdxCur = 0;\n  local_158 = p_00;\n  if ((pParse_00->nErr == 0) && (db->mallocFailed == '\0')) {\n    dest.iSDParm = 0;\n    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    pcVar51 = (char *)0xf360c;\n    pTab = sqlite3SrcListLookup(pParse_00,pList);\n    if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (Vdbe *)0x0;\nLAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }\n    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }\n    uVar14 = pTab->tabFlags;\n    pTVar42 = (Table *)&tmask;\n    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);\n    pSVar5 = pTab->pSelect;\n    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);\n    if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;\n    if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }\n    sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);\n    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = (Table *)0x0;\n    if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }\n    local_110 = (Table *)pParse_00->nMem;\n    iVar13 = (int)&local_110->zName + pTab->nCol + 1;\n    pTVar20 = (Table *)((int)&local_110->zName + 1);\n    pParse_00->nMem = iVar13;\n    local_12c = pTVar20;\n    if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }\n    uVar14 = uVar14 & 0x20;\n    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }\n    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);\n    if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }\n    iVar41 = (int)pTab->nCol;\n    if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }\n    if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\n    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = (Table *)0x0;\n    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }\n    local_168 = (AutoincInfo *)0x0;\n    if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }\n    uVar10._4_4_ = sNC.pSrcList;\n    uVar10._0_4_ = sNC.pParse;\n    if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }\n  if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }\n  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }\n  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }\n  sqlite3DbFreeNN(db,pSelect);\nLAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }\n  if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }\n  if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }\nLAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "sqlite3Insert(Parse *pParse,SrcList *pTabList,Select *pSelect,IdList *pColumn,int onError,\n                  Upsert *pUpsert)" identifier (parameter_list "(Parse *pParse,SrcList *pTabList,Select *pSelect,IdList *pColumn,int onError,\n                  Upsert *pUpsert)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "SrcList *pTabList" type_identifier (pointer_declarator "*pTabList" * identifier)) , (parameter_declaration "Select *pSelect" type_identifier (pointer_declarator "*pSelect" * identifier)) , (parameter_declaration "IdList *pColumn" type_identifier (pointer_declarator "*pColumn" * identifier)) , (parameter_declaration "int onError" primitive_type identifier) , (parameter_declaration "Upsert *pUpsert" type_identifier (pointer_declarator "*pUpsert" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  u8 uVar2;\n  ushort uVar3;\n  int iVar4;\n  sqlite3 *db;\n  Select *pSVar5;\n  byte *pbVar6;\n  ExprList *pEVar7;\n  Vdbe *pVVar8;\n  Vdbe *p;\n  bool bVar9;\n  undefined8 uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  Parse *pParse_00;\n  Table *pTab;\n  int iVar13;\n  Trigger *pTrigger;\n  uint uVar14;\n  int *piVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  u8 *puVar18;\n  Trigger *pTVar19;\n  Table *pTVar20;\n  Index *pIVar21;\n  AutoincInfo *pAVar22;\n  Parse *pPVar23;\n  HashElem *pHVar24;\n  Table *pTVar25;\n  Op *pOVar26;\n  VTable *pVVar27;\n  Table *p_00;\n  sqlite3 *extraout_ECX;\n  sqlite3 *psVar28;\n  uint uVar29;\n  int iVar30;\n  uint *pHash;\n  int nReg;\n  Expr *pEVar31;\n  Expr *extraout_ECX_00;\n  Expr *extraout_ECX_01;\n  sqlite3 *extraout_ECX_02;\n  sqlite3 *psVar32;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  sqlite3 *extraout_ECX_05;\n  bool bVar33;\n  u16 uVar34;\n  SrcList *pList;\n  byte *pbVar35;\n  int extraout_EDX;\n  AutoincInfo *pAVar36;\n  Table **ppTVar37;\n  Column *pCVar38;\n  sqlite3 *extraout_EDX_00;\n  ushort uVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  Table *pTVar42;\n  Expr *pB;\n  uint uVar43;\n  u8 *puVar44;\n  Index *pSrc;\n  int unaff_EDI;\n  ExprList_item *pEVar45;\n  Vdbe **ppVVar46;\n  Vdbe *pVVar47;\n  Table *pTVar48;\n  int in_GS_OFFSET;\n  byte bVar49;\n  undefined8 uVar50;\n  int p3;\n  Table *target;\n  char *p3_00;\n  char *in_stack_fffffe6c;\n  char *pcVar51;\n  undefined4 uVar52;\n  Parse *in_stack_fffffe74;\n  Table *in_stack_fffffe78;\n  int in_stack_fffffe7c;\n  _func_int_Walker_ptr_Expr_ptr *p_Var53;\n  AutoincInfo *local_17c;\n  sqlite3 *local_174;\n  undefined1 *local_170;\n  Table *local_16c;\n  AutoincInfo *local_168;\n  uint local_160;\n  Table *local_158;\n  SrcList *local_14c;\n  Vdbe *local_148;\n  Vdbe *local_144;\n  uint local_140;\n  int local_138;\n  ExprList_item *local_134;\n  uint local_130;\n  Table *local_12c;\n  Table *local_118;\n  Table *local_110;\n  int iDataCur;\n  int iIdxCur;\n  int tmask;\n  SelectDest dest;\n  Walker w;\n  NameContext sNC;\n  Expr sCol [2];\n  \n  bVar49 = 0;\n  uVar50 = __x86_get_pc_thunk_di();\n  pList = SUB84(uVar50,4);\n  pParse_00 = (Parse *)uVar50;\n  iVar4 = *(int *)(in_GS_OFFSET + 0x14);\n  db = pParse_00->db;\n  iDataCur = 0;\n  iIdxCur = 0;\n  local_158 = p_00;\n  if ((pParse_00->nErr == 0) && (db->mallocFailed == '\0')) {\n    dest.iSDParm = 0;\n    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    pcVar51 = (char *)0xf360c;\n    pTab = sqlite3SrcListLookup(pParse_00,pList);\n    if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (Vdbe *)0x0;\nLAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }\n    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }\n    uVar14 = pTab->tabFlags;\n    pTVar42 = (Table *)&tmask;\n    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);\n    pSVar5 = pTab->pSelect;\n    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);\n    if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;\n    if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }\n    sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);\n    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = (Table *)0x0;\n    if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }\n    local_110 = (Table *)pParse_00->nMem;\n    iVar13 = (int)&local_110->zName + pTab->nCol + 1;\n    pTVar20 = (Table *)((int)&local_110->zName + 1);\n    pParse_00->nMem = iVar13;\n    local_12c = pTVar20;\n    if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }\n    uVar14 = uVar14 & 0x20;\n    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }\n    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);\n    if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }\n    iVar41 = (int)pTab->nCol;\n    if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }\n    if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\n    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = (Table *)0x0;\n    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }\n    local_168 = (AutoincInfo *)0x0;\n    if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }\n    uVar10._4_4_ = sNC.pSrcList;\n    uVar10._0_4_ = sNC.pParse;\n    if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }\n  if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }\n  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }\n  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }\n  sqlite3DbFreeNN(db,pSelect);\nLAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }\n  if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }\n  if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }\nLAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "u8 uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "Select *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "ExprList *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "Vdbe *pVVar8;" type_identifier (pointer_declarator "*pVVar8" * identifier) ;) (declaration "Vdbe *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "Table *pTab;" type_identifier (pointer_declarator "*pTab" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Trigger *pTrigger;" type_identifier (pointer_declarator "*pTrigger" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "u8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "Trigger *pTVar19;" type_identifier (pointer_declarator "*pTVar19" * identifier) ;) (declaration "Table *pTVar20;" type_identifier (pointer_declarator "*pTVar20" * identifier) ;) (declaration "Index *pIVar21;" type_identifier (pointer_declarator "*pIVar21" * identifier) ;) (declaration "AutoincInfo *pAVar22;" type_identifier (pointer_declarator "*pAVar22" * identifier) ;) (declaration "Parse *pPVar23;" type_identifier (pointer_declarator "*pPVar23" * identifier) ;) (declaration "HashElem *pHVar24;" type_identifier (pointer_declarator "*pHVar24" * identifier) ;) (declaration "Table *pTVar25;" type_identifier (pointer_declarator "*pTVar25" * identifier) ;) (declaration "Op *pOVar26;" type_identifier (pointer_declarator "*pOVar26" * identifier) ;) (declaration "VTable *pVVar27;" type_identifier (pointer_declarator "*pVVar27" * identifier) ;) (declaration "Table *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "sqlite3 *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "sqlite3 *psVar28;" type_identifier (pointer_declarator "*psVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "uint *pHash;" type_identifier (pointer_declarator "*pHash" * identifier) ;) (declaration "int nReg;" primitive_type identifier ;) (declaration "Expr *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "Expr *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "Expr *extraout_ECX_01;" type_identifier (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "sqlite3 *extraout_ECX_02;" type_identifier (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "sqlite3 *psVar32;" type_identifier (pointer_declarator "*psVar32" * identifier) ;) (declaration "undefined4 extraout_ECX_03;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_04;" type_identifier identifier ;) (declaration "sqlite3 *extraout_ECX_05;" type_identifier (pointer_declarator "*extraout_ECX_05" * identifier) ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "u16 uVar34;" type_identifier identifier ;) (declaration "SrcList *pList;" type_identifier (pointer_declarator "*pList" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "AutoincInfo *pAVar36;" type_identifier (pointer_declarator "*pAVar36" * identifier) ;) (declaration "Table **ppTVar37;" type_identifier (pointer_declarator "**ppTVar37" * (pointer_declarator "*ppTVar37" * identifier)) ;) (declaration "Column *pCVar38;" type_identifier (pointer_declarator "*pCVar38" * identifier) ;) (declaration "sqlite3 *extraout_EDX_00;" type_identifier (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "ushort uVar39;" type_identifier identifier ;) (declaration "undefined1 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "Table *pTVar42;" type_identifier (pointer_declarator "*pTVar42" * identifier) ;) (declaration "Expr *pB;" type_identifier (pointer_declarator "*pB" * identifier) ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "u8 *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "Index *pSrc;" type_identifier (pointer_declarator "*pSrc" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "ExprList_item *pEVar45;" type_identifier (pointer_declarator "*pEVar45" * identifier) ;) (declaration "Vdbe **ppVVar46;" type_identifier (pointer_declarator "**ppVVar46" * (pointer_declarator "*ppVVar46" * identifier)) ;) (declaration "Vdbe *pVVar47;" type_identifier (pointer_declarator "*pVVar47" * identifier) ;) (declaration "Table *pTVar48;" type_identifier (pointer_declarator "*pTVar48" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar49;" type_identifier identifier ;) (declaration "undefined8 uVar50;" type_identifier identifier ;) (declaration "int p3;" primitive_type identifier ;) (declaration "Table *target;" type_identifier (pointer_declarator "*target" * identifier) ;) (declaration "char *p3_00;" primitive_type (pointer_declarator "*p3_00" * identifier) ;) (declaration "char *in_stack_fffffe6c;" primitive_type (pointer_declarator "*in_stack_fffffe6c" * identifier) ;) (declaration "char *pcVar51;" primitive_type (pointer_declarator "*pcVar51" * identifier) ;) (declaration "undefined4 uVar52;" type_identifier identifier ;) (declaration "Parse *in_stack_fffffe74;" type_identifier (pointer_declarator "*in_stack_fffffe74" * identifier) ;) (declaration "Table *in_stack_fffffe78;" type_identifier (pointer_declarator "*in_stack_fffffe78" * identifier) ;) (declaration "int in_stack_fffffe7c;" primitive_type identifier ;) (declaration "_func_int_Walker_ptr_Expr_ptr *p_Var53;" type_identifier (pointer_declarator "*p_Var53" * identifier) ;) (declaration "AutoincInfo *local_17c;" type_identifier (pointer_declarator "*local_17c" * identifier) ;) (declaration "sqlite3 *local_174;" type_identifier (pointer_declarator "*local_174" * identifier) ;) (declaration "undefined1 *local_170;" type_identifier (pointer_declarator "*local_170" * identifier) ;) (declaration "Table *local_16c;" type_identifier (pointer_declarator "*local_16c" * identifier) ;) (declaration "AutoincInfo *local_168;" type_identifier (pointer_declarator "*local_168" * identifier) ;) (declaration "uint local_160;" type_identifier identifier ;) (declaration "Table *local_158;" type_identifier (pointer_declarator "*local_158" * identifier) ;) (declaration "SrcList *local_14c;" type_identifier (pointer_declarator "*local_14c" * identifier) ;) (declaration "Vdbe *local_148;" type_identifier (pointer_declarator "*local_148" * identifier) ;) (declaration "Vdbe *local_144;" type_identifier (pointer_declarator "*local_144" * identifier) ;) (declaration "uint local_140;" type_identifier identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "ExprList_item *local_134;" type_identifier (pointer_declarator "*local_134" * identifier) ;) (declaration "uint local_130;" type_identifier identifier ;) (declaration "Table *local_12c;" type_identifier (pointer_declarator "*local_12c" * identifier) ;) (declaration "Table *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "Table *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "int iDataCur;" primitive_type identifier ;) (declaration "int iIdxCur;" primitive_type identifier ;) (declaration "int tmask;" primitive_type identifier ;) (declaration "SelectDest dest;" type_identifier identifier ;) (declaration "Walker w;" type_identifier identifier ;) (declaration "NameContext sNC;" type_identifier identifier ;) (declaration "Expr sCol [2];" type_identifier (array_declarator "sCol [2]" identifier [ number_literal ]) ;) (expression_statement "bVar49 = 0;" (assignment_expression "bVar49 = 0" identifier = number_literal) ;) (expression_statement "uVar50 = __x86_get_pc_thunk_di();" (assignment_expression "uVar50 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "pList = SUB84(uVar50,4);" (assignment_expression "pList = SUB84(uVar50,4)" identifier = (call_expression "SUB84(uVar50,4)" identifier (argument_list "(uVar50,4)" ( identifier , number_literal )))) ;) (expression_statement "pParse_00 = (Parse *)uVar50;" (assignment_expression "pParse_00 = (Parse *)uVar50" identifier = (cast_expression "(Parse *)uVar50" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar4 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar4 = *(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 "db = pParse_00->db;" (assignment_expression "db = pParse_00->db" identifier = (field_expression "pParse_00->db" identifier -> field_identifier)) ;) (expression_statement "iDataCur = 0;" (assignment_expression "iDataCur = 0" identifier = number_literal) ;) (expression_statement "iIdxCur = 0;" (assignment_expression "iIdxCur = 0" identifier = number_literal) ;) (expression_statement "local_158 = p_00;" (assignment_expression "local_158 = p_00" identifier = identifier) ;) (if_statement "if ((pParse_00->nErr == 0) && (db->mallocFailed == '\0')) {\n    dest.iSDParm = 0;\n    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    pcVar51 = (char *)0xf360c;\n    pTab = sqlite3SrcListLookup(pParse_00,pList);\n    if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (Vdbe *)0x0;\nLAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }\n    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }\n    uVar14 = pTab->tabFlags;\n    pTVar42 = (Table *)&tmask;\n    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);\n    pSVar5 = pTab->pSelect;\n    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);\n    if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;\n    if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }\n    sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);\n    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = (Table *)0x0;\n    if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }\n    local_110 = (Table *)pParse_00->nMem;\n    iVar13 = (int)&local_110->zName + pTab->nCol + 1;\n    pTVar20 = (Table *)((int)&local_110->zName + 1);\n    pParse_00->nMem = iVar13;\n    local_12c = pTVar20;\n    if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }\n    uVar14 = uVar14 & 0x20;\n    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }\n    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);\n    if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }\n    iVar41 = (int)pTab->nCol;\n    if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }\n    if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\n    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = (Table *)0x0;\n    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }\n    local_168 = (AutoincInfo *)0x0;\n    if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }\n    uVar10._4_4_ = sNC.pSrcList;\n    uVar10._0_4_ = sNC.pParse;\n    if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }\n  if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }\n  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }\n  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }\n  sqlite3DbFreeNN(db,pSelect);\nLAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }\n  if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }\n  if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }\nLAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" if (parenthesized_expression "((pParse_00->nErr == 0) && (db->mallocFailed == '\0'))" ( (binary_expression "(pParse_00->nErr == 0) && (db->mallocFailed == '\0')" (parenthesized_expression "(pParse_00->nErr == 0)" ( (binary_expression "pParse_00->nErr == 0" (field_expression "pParse_00->nErr" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(db->mallocFailed == '\0')" ( (binary_expression "db->mallocFailed == '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    dest.iSDParm = 0;\n    if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    pcVar51 = (char *)0xf360c;\n    pTab = sqlite3SrcListLookup(pParse_00,pList);\n    if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (Vdbe *)0x0;\nLAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }\n    iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }\n    uVar14 = pTab->tabFlags;\n    pTVar42 = (Table *)&tmask;\n    pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);\n    pSVar5 = pTab->pSelect;\n    iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);\n    if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;\n    if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }\n    sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);\n    if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = (Table *)0x0;\n    if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }\n    local_110 = (Table *)pParse_00->nMem;\n    iVar13 = (int)&local_110->zName + pTab->nCol + 1;\n    pTVar20 = (Table *)((int)&local_110->zName + 1);\n    pParse_00->nMem = iVar13;\n    local_12c = pTVar20;\n    if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }\n    uVar14 = uVar14 & 0x20;\n    local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }\n    puVar16 = (undefined1 *)((int)&local_12c->zName + 1);\n    if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }\n    iVar41 = (int)pTab->nCol;\n    if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }\n    if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\n    if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = (Table *)0x0;\n    if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }\n    local_168 = (AutoincInfo *)0x0;\n    if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }\n    uVar10._4_4_ = sNC.pSrcList;\n    uVar10._0_4_ = sNC.pParse;\n    if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }\n  if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }\n  if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }\n  if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }\n  sqlite3DbFreeNN(db,pSelect);\nLAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }\n  if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }\n  if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }\nLAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (expression_statement "dest.iSDParm = 0;" (assignment_expression "dest.iSDParm = 0" (field_expression "dest.iSDParm" identifier . field_identifier) = number_literal) ;) (if_statement "if (((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       ) {\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" if (parenthesized_expression "(((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)\n       )" ( (binary_expression "((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)) && (p_00->addColOffset == 0)" (parenthesized_expression "((p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0))" ( (binary_expression "(p_00 != (Table *)0x0) && (((uint)p_00->pIndex & 0x200) != 0)" (parenthesized_expression "(p_00 != (Table *)0x0)" ( (binary_expression "p_00 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((uint)p_00->pIndex & 0x200) != 0)" ( (binary_expression "((uint)p_00->pIndex & 0x200) != 0" (parenthesized_expression "((uint)p_00->pIndex & 0x200)" ( (binary_expression "(uint)p_00->pIndex & 0x200" (cast_expression "(uint)p_00->pIndex" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_00->pIndex" identifier -> field_identifier)) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(p_00->addColOffset == 0)" ( (binary_expression "p_00->addColOffset == 0" (field_expression "p_00->addColOffset" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      local_148 = (Vdbe *)p_00->zName;\n      p_00->zName = (char *)0x0;\n      clearSelect(db,(Select *)p_00,1);\n      pcVar51 = (char *)0xf3f64;\n      pTab = sqlite3SrcListLookup(pParse_00,pList);\n      local_158 = pTab;\n      if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" { (expression_statement "local_148 = (Vdbe *)p_00->zName;" (assignment_expression "local_148 = (Vdbe *)p_00->zName" identifier = (cast_expression "(Vdbe *)p_00->zName" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_00->zName" identifier -> field_identifier))) ;) (expression_statement "p_00->zName = (char *)0x0;" (assignment_expression "p_00->zName = (char *)0x0" (field_expression "p_00->zName" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "clearSelect(db,(Select *)p_00,1);" (call_expression "clearSelect(db,(Select *)p_00,1)" identifier (argument_list "(db,(Select *)p_00,1)" ( identifier , (cast_expression "(Select *)p_00" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "pcVar51 = (char *)0xf3f64;" (assignment_expression "pcVar51 = (char *)0xf3f64" identifier = (cast_expression "(char *)0xf3f64" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTab = sqlite3SrcListLookup(pParse_00,pList);" (assignment_expression "pTab = sqlite3SrcListLookup(pParse_00,pList)" identifier = (call_expression "sqlite3SrcListLookup(pParse_00,pList)" identifier (argument_list "(pParse_00,pList)" ( identifier , identifier )))) ;) (expression_statement "local_158 = pTab;" (assignment_expression "local_158 = pTab" identifier = identifier) ;) (if_statement "if (pTab != (Table *)0x0) {\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }" if (parenthesized_expression "(pTab != (Table *)0x0)" ( (binary_expression "pTab != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_158 = (Table *)0x0;\n        goto LAB_000f3620;\n      }" { (expression_statement "local_158 = (Table *)0x0;" (assignment_expression "local_158 = (Table *)0x0" identifier = (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3620;" goto statement_identifier ;) })) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;) })) (expression_statement "pcVar51 = (char *)0xf360c;" (assignment_expression "pcVar51 = (char *)0xf360c" identifier = (cast_expression "(char *)0xf360c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTab = sqlite3SrcListLookup(pParse_00,pList);" (assignment_expression "pTab = sqlite3SrcListLookup(pParse_00,pList)" identifier = (call_expression "sqlite3SrcListLookup(pParse_00,pList)" identifier (argument_list "(pParse_00,pList)" ( identifier , identifier )))) ;) (if_statement "if (pTab == (Table *)0x0) {\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(pTab == (Table *)0x0)" ( (binary_expression "pTab == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3SrcListDelete(db,pList);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f36a8;\n    }" { (expression_statement "sqlite3SrcListDelete(db,pList);" (call_expression "sqlite3SrcListDelete(db,pList)" identifier (argument_list "(db,pList)" ( identifier , identifier ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "local_148 = (Vdbe *)0x0;" (assignment_expression "local_148 = (Vdbe *)0x0" identifier = (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f3620:\n    if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }" statement_identifier : (if_statement "if (pTab->pSchema == (Schema *)0x0) {\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }\n    else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }" if (parenthesized_expression "(pTab->pSchema == (Schema *)0x0)" ( (binary_expression "pTab->pSchema == (Schema *)0x0" (field_expression "pTab->pSchema" identifier -> field_identifier) == (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = -16000000;\n      local_134 = (ExprList_item *)0xfff0bdc0;\n    }" { (expression_statement "iVar13 = -16000000;" (assignment_expression "iVar13 = -16000000" identifier = number_literal) ;) (expression_statement "local_134 = (ExprList_item *)0xfff0bdc0;" (assignment_expression "local_134 = (ExprList_item *)0xfff0bdc0" identifier = (cast_expression "(ExprList_item *)0xfff0bdc0" ( (type_descriptor "ExprList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }" else (compound_statement "{\n      pcVar51 = (char *)0xf3634;\n      local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);\n      iVar13 = (int)local_134 << 4;\n    }" { (expression_statement "pcVar51 = (char *)0xf3634;" (assignment_expression "pcVar51 = (char *)0xf3634" identifier = (cast_expression "(char *)0xf3634" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema);" (assignment_expression "local_134 = (ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema)" identifier = (cast_expression "(ExprList_item *)sqlite3SchemaToIndex(db,pTab->pSchema)" ( (type_descriptor "ExprList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3SchemaToIndex(db,pTab->pSchema)" identifier (argument_list "(db,pTab->pSchema)" ( identifier , (field_expression "pTab->pSchema" identifier -> field_identifier) ))))) ;) (expression_statement "iVar13 = (int)local_134 << 4;" (assignment_expression "iVar13 = (int)local_134 << 4" identifier = (binary_expression "(int)local_134 << 4" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) })))) (expression_statement "iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74);" (assignment_expression "iVar13 = sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74)" identifier = (call_expression "sqlite3AuthCheck((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74)" identifier (argument_list "((Parse *)0x0,*(int *)((int)&db->aDb->zDbSName + iVar13),\n                              in_stack_fffffe6c,pcVar51,(char *)in_stack_fffffe74)" ( (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "*(int *)((int)&db->aDb->zDbSName + iVar13)" * (cast_expression "(int *)((int)&db->aDb->zDbSName + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db->aDb->zDbSName + iVar13)" ( (binary_expression "(int)&db->aDb->zDbSName + iVar13" (cast_expression "(int)&db->aDb->zDbSName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db->aDb->zDbSName" & (field_expression "db->aDb->zDbSName" (field_expression "db->aDb" identifier -> field_identifier) -> field_identifier))) + identifier) )))) , identifier , identifier , (cast_expression "(char *)in_stack_fffffe74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;\nLAB_000f3673:\n      sqlite3SrcListDelete(db,pList);\n      if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }\n      goto LAB_000f36a8;\n    }" { (labeled_statement "LAB_000f366b:\n      local_17c = (AutoincInfo *)0x0;" statement_identifier : (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000f3673:\n      sqlite3SrcListDelete(db,pList);" statement_identifier : (expression_statement "sqlite3SrcListDelete(db,pList);" (call_expression "sqlite3SrcListDelete(db,pList)" identifier (argument_list "(db,pList)" ( identifier , identifier ))) ;)) (if_statement "if (local_148 != (Vdbe *)0x0) {\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }" if (parenthesized_expression "(local_148 != (Vdbe *)0x0)" ( (binary_expression "local_148 != (Vdbe *)0x0" identifier != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);\n      }" { (labeled_statement "LAB_000f3688:\n        exprListDeleteNN(db,(ExprList *)local_148);" statement_identifier : (expression_statement "exprListDeleteNN(db,(ExprList *)local_148);" (call_expression "exprListDeleteNN(db,(ExprList *)local_148)" identifier (argument_list "(db,(ExprList *)local_148)" ( identifier , (cast_expression "(ExprList *)local_148" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) })) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "uVar14 = pTab->tabFlags;" (assignment_expression "uVar14 = pTab->tabFlags" identifier = (field_expression "pTab->tabFlags" identifier -> field_identifier)) ;) (expression_statement "pTVar42 = (Table *)&tmask;" (assignment_expression "pTVar42 = (Table *)&tmask" identifier = (cast_expression "(Table *)&tmask" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tmask" & identifier))) ;) (expression_statement "pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42);" (assignment_expression "pTrigger = sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42)" identifier = (call_expression "sqlite3TriggersExist(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42)" identifier (argument_list "(pParse_00,pTab,0x74,(ExprList *)0x0,(int *)pTVar42)" ( identifier , identifier , number_literal , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)pTVar42" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pSVar5 = pTab->pSelect;" (assignment_expression "pSVar5 = pTab->pSelect" identifier = (field_expression "pTab->pSelect" identifier -> field_identifier)) ;) (expression_statement "iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab);" (assignment_expression "iVar13 = sqlite3ViewGetColumnNames(pParse_00,pTab)" identifier = (call_expression "sqlite3ViewGetColumnNames(pParse_00,pTab)" identifier (argument_list "(pParse_00,pTab)" ( identifier , identifier )))) ;) (if_statement "if (((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))) goto LAB_000f366b;" if (parenthesized_expression "(((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0))))" ( (binary_expression "((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)) ||\n       ((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))" (parenthesized_expression "((iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0))" ( (binary_expression "(iVar13 != 0) ||\n        (iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0)" ( (comma_expression "iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),\n        iVar13 != 0" (assignment_expression "iVar13 = sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c)" identifier = (call_expression "sqlite3IsReadOnly(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c)" identifier (argument_list "(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c)" ( identifier , identifier , identifier )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)))" ( (parenthesized_expression "(local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0))" ( (comma_expression "local_144 = pParse_00->pVdbe, local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)" (assignment_expression "local_144 = pParse_00->pVdbe" identifier = (field_expression "pParse_00->pVdbe" identifier -> field_identifier)) , (binary_expression "local_144 == (Vdbe *)0x0 &&\n        (local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)" (binary_expression "local_144 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0)" ( (comma_expression "local_144 = sqlite3GetVdbe(pParse_00), local_144 == (Vdbe *)0x0" (assignment_expression "local_144 = sqlite3GetVdbe(pParse_00)" identifier = (call_expression "sqlite3GetVdbe(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier )))) , (binary_expression "local_144 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (if_statement "if (pParse_00->nested == '\0') {\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }" if (parenthesized_expression "(pParse_00->nested == '\0')" ( (binary_expression "pParse_00->nested == '\0'" (field_expression "pParse_00->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_144->field_0x8d = local_144->field_0x8d | 0x20;\n    }" { (expression_statement "local_144->field_0x8d = local_144->field_0x8d | 0x20;" (assignment_expression "local_144->field_0x8d = local_144->field_0x8d | 0x20" (field_expression "local_144->field_0x8d" identifier -> field_identifier) = (binary_expression "local_144->field_0x8d | 0x20" (field_expression "local_144->field_0x8d" identifier -> field_identifier) | number_literal)) ;) })) (expression_statement "sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134);" (call_expression "sqlite3BeginWriteOperation\n              (pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134)" identifier (argument_list "(pParse_00,(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0),\n               (int)local_134)" ( identifier , (call_expression "(uint)(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0)" ( (binary_expression "pTrigger != (Trigger *)0x0 || local_158 != (Table *)0x0" (binary_expression "pTrigger != (Trigger *)0x0" identifier != (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_158 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) , (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))) {\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0))))" ( (binary_expression "((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)) &&\n       ((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))" (parenthesized_expression "((pParse == (Parse *)0x0) && (local_158 != (Table *)0x0))" ( (binary_expression "(pParse == (Parse *)0x0) && (local_158 != (Table *)0x0)" (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_158 != (Table *)0x0)" ( (binary_expression "local_158 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)))" ( (parenthesized_expression "(pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0))" ( (binary_expression "pParse_00->pWith == (With *)0x0 && (local_158->pVTable == (VTable *)0x0)" (binary_expression "pParse_00->pWith == (With *)0x0" (field_expression "pParse_00->pWith" identifier -> field_identifier) == (cast_expression "(With *)0x0" ( (type_descriptor "With *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_158->pVTable == (VTable *)0x0)" ( (binary_expression "local_158->pVTable == (VTable *)0x0" (field_expression "local_158->pVTable" identifier -> field_identifier) == (cast_expression "(VTable *)0x0" ( (type_descriptor "VTable *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n      psVar28 = pParse_00->db;\n      pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));\n      if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;\n      local_14c = pTabList;\n      if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }\n      piVar15 = (int *)local_158->nTabRef;\n      if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;\n      for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }\n      local_170 = (undefined1 *)0x0;\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }\n      if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;\n      if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }\n      pVVar47 = pParse_00->pVdbe;\n      if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }\n      sqlite3CodeVerifySchema(pParse_00,local_140);\n      iVar13 = pParse_00->nTab;\n      local_12c = (Table *)0x0;\n      pParse_00->nTab = iVar13 + 2;\n      if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }\n      uVar2 = pParse_00->nTempReg;\n      if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }\n      iVar41 = iVar13 + 1;\n      iVar30 = 0x6e;\n      sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);\n      psVar32 = extraout_ECX_02;\n      if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }\n      if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }\n      pcVar51 = (char *)(unaff_EDI + 0x67fba);\n      for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }\n      if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }\n      uVar12._4_4_ = sNC.pSrcList;\n      uVar12._0_4_ = sNC.pParse;\n      uVar11._4_4_ = sNC.pSrcList;\n      uVar11._0_4_ = sNC.pParse;\n      if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }\n      local_17c = (AutoincInfo *)0x0;\n      if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }\n      goto LAB_000f3673;\n    }" { (expression_statement "psVar28 = pParse_00->db;" (assignment_expression "psVar28 = pParse_00->db" identifier = (field_expression "pParse_00->db" identifier -> field_identifier)) ;) (expression_statement "pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers));" (assignment_expression "pTVar19 = sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers))" identifier = (call_expression "sqlite3TriggerList(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers))" identifier (argument_list "(in_stack_fffffe74,in_stack_fffffe78,\n                                   (Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers))" ( identifier , identifier , (cast_expression "(Parse *)CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers)" identifier (argument_list "((int3)((uint)in_stack_fffffe7c >> 8),\n                                                     pParse_00->disableTriggers)" ( (call_expression "(int3)((uint)in_stack_fffffe7c >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)in_stack_fffffe7c >> 8)" ( (binary_expression "(uint)in_stack_fffffe7c >> 8" (cast_expression "(uint)in_stack_fffffe7c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (field_expression "pParse_00->disableTriggers" identifier -> field_identifier) )))) )))) ;) (if_statement "if ((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)) goto LAB_000f380e;" if (parenthesized_expression "((pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0))" ( (binary_expression "(pTVar19 != (Trigger *)0x0) || (pTab->nModuleArg != 0)" (parenthesized_expression "(pTVar19 != (Trigger *)0x0)" ( (binary_expression "pTVar19 != (Trigger *)0x0" identifier != (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "local_14c = pTabList;" (assignment_expression "local_14c = pTabList" identifier = identifier) ;) (if_statement "if ((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))) {\n        local_14c = (SrcList *)0x2;\n      }" if (parenthesized_expression "((pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb))))" ( (binary_expression "(pTabList == (SrcList *)0xb) &&\n         ((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))" (parenthesized_expression "(pTabList == (SrcList *)0xb)" ( (binary_expression "pTabList == (SrcList *)0xb" identifier == (cast_expression "(SrcList *)0xb" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)))" ( (parenthesized_expression "(local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb))" ( (comma_expression "local_14c = (SrcList *)0x2, -1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)" (assignment_expression "local_14c = (SrcList *)0x2" identifier = (cast_expression "(SrcList *)0x2" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "-1 < pTab->iPKey &&\n          (local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)" (binary_expression "-1 < pTab->iPKey" number_literal < (field_expression "pTab->iPKey" identifier -> field_identifier)) && (parenthesized_expression "(local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb)" ( (comma_expression "local_14c = (SrcList *)(uint)pTab->keyConf, local_14c == (SrcList *)0xb" (assignment_expression "local_14c = (SrcList *)(uint)pTab->keyConf" identifier = (cast_expression "(SrcList *)(uint)pTab->keyConf" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pTab->keyConf" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTab->keyConf" identifier -> field_identifier)))) , (binary_expression "local_14c == (SrcList *)0xb" identifier == (cast_expression "(SrcList *)0xb" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n        local_14c = (SrcList *)0x2;\n      }" { (expression_statement "local_14c = (SrcList *)0x2;" (assignment_expression "local_14c = (SrcList *)0x2" identifier = (cast_expression "(SrcList *)0x2" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "piVar15 = (int *)local_158->nTabRef;" (assignment_expression "piVar15 = (int *)local_158->nTabRef" identifier = (cast_expression "(int *)local_158->nTabRef" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_158->nTabRef" identifier -> field_identifier))) ;) (if_statement "if ((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))\n      goto LAB_000f380e;" if (parenthesized_expression "((((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))))" ( (binary_expression "(((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))) ||\n         (((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))))))" (parenthesized_expression "(((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0))))))" ( (binary_expression "((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))) ||\n          ((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))" (parenthesized_expression "((((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0))))))))" ( (binary_expression "(((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)) ||\n           (((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))" (parenthesized_expression "(((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0))" ( (binary_expression "((*piVar15 != 1) || (piVar15[7] != 0)) || (local_158->tabFlags != 0)" (parenthesized_expression "((*piVar15 != 1) || (piVar15[7] != 0))" ( (binary_expression "(*piVar15 != 1) || (piVar15[7] != 0)" (parenthesized_expression "(*piVar15 != 1)" ( (binary_expression "*piVar15 != 1" (pointer_expression "*piVar15" * identifier) != number_literal) )) || (parenthesized_expression "(piVar15[7] != 0)" ( (binary_expression "piVar15[7] != 0" (subscript_expression "piVar15[7]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(local_158->tabFlags != 0)" ( (binary_expression "local_158->tabFlags != 0" (field_expression "local_158->tabFlags" identifier -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "(((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))))" ( (parenthesized_expression "((*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0))))))" ( (binary_expression "(*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)) ||\n            ((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))" (parenthesized_expression "(*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0))" ( (binary_expression "*(int *)&local_158->keyConf != 0 ||\n             (iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)" (binary_expression "*(int *)&local_158->keyConf != 0" (pointer_expression "*(int *)&local_158->keyConf" * (cast_expression "(int *)&local_158->keyConf" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_158->keyConf" & (field_expression "local_158->keyConf" identifier -> field_identifier)))) != number_literal) || (parenthesized_expression "(iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0)" ( (comma_expression "iVar13._0_2_ = local_158->iPKey, iVar13._2_2_ = local_158->nCol, iVar13 != 0" (assignment_expression "iVar13._0_2_ = local_158->iPKey" (field_expression "iVar13._0_2_" identifier . field_identifier) = (field_expression "local_158->iPKey" identifier -> field_identifier)) , (comma_expression "iVar13._2_2_ = local_158->nCol, iVar13 != 0" (assignment_expression "iVar13._2_2_ = local_158->nCol" (field_expression "iVar13._2_2_" identifier . field_identifier) = (field_expression "local_158->nCol" identifier -> field_identifier)) , (binary_expression "iVar13 != 0" identifier != number_literal))) ))) )) || (parenthesized_expression "((local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))))" ( (parenthesized_expression "(local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0))))" ( (binary_expression "local_158->azModuleArg != (char **)0x0 ||\n             ((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))" (binary_expression "local_158->azModuleArg != (char **)0x0" (field_expression "local_158->azModuleArg" identifier -> field_identifier) != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) || (parenthesized_expression "((local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)))" ( (parenthesized_expression "(local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0))" ( (binary_expression "local_158->addColOffset != 0 || (((uint)local_158->pIndex & 1) != 0)" (binary_expression "local_158->addColOffset != 0" (field_expression "local_158->addColOffset" identifier -> field_identifier) != number_literal) || (parenthesized_expression "(((uint)local_158->pIndex & 1) != 0)" ( (binary_expression "((uint)local_158->pIndex & 1) != 0" (parenthesized_expression "((uint)local_158->pIndex & 1)" ( (binary_expression "(uint)local_158->pIndex & 1" (cast_expression "(uint)local_158->pIndex" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_158->pIndex" identifier -> field_identifier)) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) ))) )) || (parenthesized_expression "((*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))))" ( (parenthesized_expression "(*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0))))" ( (binary_expression "*(int *)local_158->zName != 1 ||\n           ((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))" (binary_expression "*(int *)local_158->zName != 1" (pointer_expression "*(int *)local_158->zName" * (cast_expression "(int *)local_158->zName" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_158->zName" identifier -> field_identifier))) != number_literal) || (parenthesized_expression "((**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)))" ( (parenthesized_expression "(**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0))" ( (binary_expression "**(char **)((int)local_158->zName + 4) != -0x58 ||\n            (pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)" (binary_expression "**(char **)((int)local_158->zName + 4) != -0x58" (pointer_expression "**(char **)((int)local_158->zName + 4)" * (pointer_expression "*(char **)((int)local_158->zName + 4)" * (cast_expression "(char **)((int)local_158->zName + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_158->zName + 4)" ( (binary_expression "(int)local_158->zName + 4" (cast_expression "(int)local_158->zName" ( (type_descriptor "int" primitive_type) ) (field_expression "local_158->zName" identifier -> field_identifier)) + number_literal) ))))) != number_literal) || (parenthesized_expression "(pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0)" ( (comma_expression "pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2)),\n            pTVar20 == (Table *)0x0" (assignment_expression "pTVar20 = sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2))" identifier = (call_expression "sqlite3LocateTableItem(pParse_00,0,(SrcList_item *)(piVar15 + 2))" identifier (argument_list "(pParse_00,0,(SrcList_item *)(piVar15 + 2))" ( identifier , number_literal , (cast_expression "(SrcList_item *)(piVar15 + 2)" ( (type_descriptor "SrcList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar15 + 2)" ( (binary_expression "piVar15 + 2" identifier + number_literal) ))) )))) , (binary_expression "pTVar20 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) || (parenthesized_expression "(((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))))))" ( (parenthesized_expression "((pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))))" ( (binary_expression "(pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)) ||\n          (((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))))" (parenthesized_expression "(pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema))" ( (binary_expression "pTVar20->tnum == pTab->tnum && (pTVar20->pSchema == pTab->pSchema)" (binary_expression "pTVar20->tnum == pTab->tnum" (field_expression "pTVar20->tnum" identifier -> field_identifier) == (field_expression "pTab->tnum" identifier -> field_identifier)) && (parenthesized_expression "(pTVar20->pSchema == pTab->pSchema)" ( (binary_expression "pTVar20->pSchema == pTab->pSchema" (field_expression "pTVar20->pSchema" identifier -> field_identifier) == (field_expression "pTab->pSchema" identifier -> field_identifier)) ))) )) || (parenthesized_expression "(((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))))" ( (parenthesized_expression "((((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))))" ( (binary_expression "(((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)) ||\n           ((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))" (parenthesized_expression "(((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0))" ( (binary_expression "((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)) || (pTVar20->pSelect != (Select *)0x0)" (parenthesized_expression "((((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0))" ( (binary_expression "(((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)\n             || (pTVar20->nModuleArg != 0)" (binary_expression "(((byte)(pTab->tabFlags >> 5) ^ 1) & 1) != (((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)" (parenthesized_expression "(((byte)(pTab->tabFlags >> 5) ^ 1) & 1)" ( (binary_expression "((byte)(pTab->tabFlags >> 5) ^ 1) & 1" (parenthesized_expression "((byte)(pTab->tabFlags >> 5) ^ 1)" ( (binary_expression "(byte)(pTab->tabFlags >> 5) ^ 1" (call_expression "(byte)(pTab->tabFlags >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pTab->tabFlags >> 5)" ( (binary_expression "pTab->tabFlags >> 5" (field_expression "pTab->tabFlags" identifier -> field_identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) != (parenthesized_expression "(((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1)" ( (binary_expression "((byte)(pTVar20->tabFlags >> 5) ^ 1) & 1" (parenthesized_expression "((byte)(pTVar20->tabFlags >> 5) ^ 1)" ( (binary_expression "(byte)(pTVar20->tabFlags >> 5) ^ 1" (call_expression "(byte)(pTVar20->tabFlags >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pTVar20->tabFlags >> 5)" ( (binary_expression "pTVar20->tabFlags >> 5" (field_expression "pTVar20->tabFlags" identifier -> field_identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) ))) || (parenthesized_expression "(pTVar20->nModuleArg != 0)" ( (binary_expression "pTVar20->nModuleArg != 0" (field_expression "pTVar20->nModuleArg" identifier -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "(pTVar20->pSelect != (Select *)0x0)" ( (binary_expression "pTVar20->pSelect != (Select *)0x0" (field_expression "pTVar20->pSelect" identifier -> field_identifier) != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)))" ( (parenthesized_expression "(iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey))" ( (comma_expression "iVar13 = (int)pTab->nCol, pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)" (assignment_expression "iVar13 = (int)pTab->nCol" identifier = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) , (binary_expression "pTab->nCol != pTVar20->nCol ||\n            (pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)" (binary_expression "pTab->nCol != pTVar20->nCol" (field_expression "pTab->nCol" identifier -> field_identifier) != (field_expression "pTVar20->nCol" identifier -> field_identifier)) || (parenthesized_expression "(pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey)" ( (comma_expression "pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey, pTab->iPKey != pTVar20->iPKey" (assignment_expression "pTVar48 = (Table *)(uint)(ushort)pTVar20->iPKey" identifier = (cast_expression "(Table *)(uint)(ushort)pTVar20->iPKey" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(ushort)pTVar20->iPKey" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)pTVar20->iPKey" ( (type_descriptor "ushort" type_identifier) ) (field_expression "pTVar20->iPKey" identifier -> field_identifier))))) , (binary_expression "pTab->iPKey != pTVar20->iPKey" (field_expression "pTab->iPKey" identifier -> field_identifier) != (field_expression "pTVar20->iPKey" identifier -> field_identifier))) )))) )) ))) )) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (for_statement "for (iVar41 = 0; iVar41 < iVar13; iVar41 = iVar41 + 1) {\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }" for ( (assignment_expression "iVar41 = 0" identifier = number_literal) ; (binary_expression "iVar41 < iVar13" identifier < identifier) ; (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ) (compound_statement "{\n        pCVar38 = pTab->aCol;\n        pTVar25 = (Table *)(pTVar20->aCol + iVar41);\n        if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;\n        pIVar21 = pTVar25->pIndex;\n        if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }\n        if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;\n        pTVar48 = pTVar25;\n        if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }\n      }" { (expression_statement "pCVar38 = pTab->aCol;" (assignment_expression "pCVar38 = pTab->aCol" identifier = (field_expression "pTab->aCol" identifier -> field_identifier)) ;) (expression_statement "pTVar25 = (Table *)(pTVar20->aCol + iVar41);" (assignment_expression "pTVar25 = (Table *)(pTVar20->aCol + iVar41)" identifier = (cast_expression "(Table *)(pTVar20->aCol + iVar41)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar20->aCol + iVar41)" ( (binary_expression "pTVar20->aCol + iVar41" (field_expression "pTVar20->aCol" identifier -> field_identifier) + identifier) )))) ;) (if_statement "if (pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)) goto LAB_000f380e;" if (parenthesized_expression "(pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1))" ( (binary_expression "pCVar38[iVar41].affinity != *(char *)((int)&pTVar25->pSelect + 1)" (field_expression "pCVar38[iVar41].affinity" (subscript_expression "pCVar38[iVar41]" identifier [ identifier ]) . field_identifier) != (pointer_expression "*(char *)((int)&pTVar25->pSelect + 1)" * (cast_expression "(char *)((int)&pTVar25->pSelect + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar25->pSelect + 1)" ( (binary_expression "(int)&pTVar25->pSelect + 1" (cast_expression "(int)&pTVar25->pSelect" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar25->pSelect" & (field_expression "pTVar25->pSelect" identifier -> field_identifier))) + number_literal) ))))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "pIVar21 = pTVar25->pIndex;" (assignment_expression "pIVar21 = pTVar25->pIndex" identifier = (field_expression "pTVar25->pIndex" identifier -> field_identifier)) ;) (if_statement "if (pCVar38[iVar41].zColl != (char *)0x0) {\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }" if (parenthesized_expression "(pCVar38[iVar41].zColl != (char *)0x0)" ( (binary_expression "pCVar38[iVar41].zColl != (char *)0x0" (field_expression "pCVar38[iVar41].zColl" (subscript_expression "pCVar38[iVar41]" identifier [ identifier ]) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pIVar21 == (Index *)0x0) goto LAB_000f380e;\n          pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);\n        }" { (if_statement "if (pIVar21 == (Index *)0x0) goto LAB_000f380e;" if (parenthesized_expression "(pIVar21 == (Index *)0x0)" ( (binary_expression "pIVar21 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21);" (assignment_expression "pIVar21 = (Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21)" identifier = (cast_expression "(Index *)sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21)" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_stricmp(pCVar38[iVar41].zColl,(char *)pIVar21)" identifier (argument_list "(pCVar38[iVar41].zColl,(char *)pIVar21)" ( (field_expression "pCVar38[iVar41].zColl" (subscript_expression "pCVar38[iVar41]" identifier [ identifier ]) . field_identifier) , (cast_expression "(char *)pIVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) })) (if_statement "if ((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))\n        goto LAB_000f380e;" if (parenthesized_expression "((pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))))" ( (binary_expression "(pIVar21 != (Index *)0x0) ||\n           ((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0')))" (parenthesized_expression "(pIVar21 != (Index *)0x0)" ( (binary_expression "pIVar21 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0')))" ( (parenthesized_expression "(pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0'))" ( (binary_expression "pCVar38[iVar41].notNull != '\0' && (*(u8 *)&pTVar25->pSelect == '\0')" (binary_expression "pCVar38[iVar41].notNull != '\0'" (field_expression "pCVar38[iVar41].notNull" (subscript_expression "pCVar38[iVar41]" identifier [ identifier ]) . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(u8 *)&pTVar25->pSelect == '\0')" ( (binary_expression "*(u8 *)&pTVar25->pSelect == '\0'" (pointer_expression "*(u8 *)&pTVar25->pSelect" * (cast_expression "(u8 *)&pTVar25->pSelect" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar25->pSelect" & (field_expression "pTVar25->pSelect" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "pTVar48 = pTVar25;" (assignment_expression "pTVar48 = pTVar25" identifier = identifier) ;) (if_statement "if (0 < iVar41) {\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }" if (parenthesized_expression "(0 < iVar41)" ( (binary_expression "0 < iVar41" number_literal < identifier) )) (compound_statement "{\n          pEVar31 = pCVar38[iVar41].pDflt;\n          if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;\n          pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);\n          if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }\n        }" { (expression_statement "pEVar31 = pCVar38[iVar41].pDflt;" (assignment_expression "pEVar31 = pCVar38[iVar41].pDflt" identifier = (field_expression "pCVar38[iVar41].pDflt" (subscript_expression "pCVar38[iVar41]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)) goto LAB_000f380e;" if (parenthesized_expression "((pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0))" ( (binary_expression "(pEVar31 == (Expr *)0x0) != ((Expr *)pTVar25->aCol == (Expr *)0x0)" (parenthesized_expression "(pEVar31 == (Expr *)0x0)" ( (binary_expression "pEVar31 == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) != (parenthesized_expression "((Expr *)pTVar25->aCol == (Expr *)0x0)" ( (binary_expression "(Expr *)pTVar25->aCol == (Expr *)0x0" (cast_expression "(Expr *)pTVar25->aCol" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar25->aCol" identifier -> field_identifier)) == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0);" (assignment_expression "pTVar48 = (Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0)" identifier = (cast_expression "(Table *)CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0)" identifier (argument_list "((int3)((uint)pTVar25 >> 8),pEVar31 == (Expr *)0x0)" ( (call_expression "(int3)((uint)pTVar25 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)pTVar25 >> 8)" ( (binary_expression "(uint)pTVar25 >> 8" (cast_expression "(uint)pTVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "pEVar31 == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (pEVar31 != (Expr *)0x0) {\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }" if (parenthesized_expression "(pEVar31 != (Expr *)0x0)" ( (binary_expression "pEVar31 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;\n            iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);\n            pTVar48 = (Table *)(unaff_EDI + 0xc78c1);\n            if (iVar30 != 0) goto LAB_000f380e;\n          }" { (expression_statement "pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken;" (assignment_expression "pTVar42 = (Table *)(((Expr *)pTVar25->aCol)->u).zToken" identifier = (cast_expression "(Table *)(((Expr *)pTVar25->aCol)->u).zToken" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((Expr *)pTVar25->aCol)->u).zToken" (parenthesized_expression "(((Expr *)pTVar25->aCol)->u)" ( (field_expression "((Expr *)pTVar25->aCol)->u" (parenthesized_expression "((Expr *)pTVar25->aCol)" ( (cast_expression "(Expr *)pTVar25->aCol" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar25->aCol" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42);" (assignment_expression "iVar30 = strcmp((pEVar31->u).zToken,(char *)pTVar42)" identifier = (call_expression "strcmp((pEVar31->u).zToken,(char *)pTVar42)" identifier (argument_list "((pEVar31->u).zToken,(char *)pTVar42)" ( (field_expression "(pEVar31->u).zToken" (parenthesized_expression "(pEVar31->u)" ( (field_expression "pEVar31->u" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(char *)pTVar42" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pTVar48 = (Table *)(unaff_EDI + 0xc78c1);" (assignment_expression "pTVar48 = (Table *)(unaff_EDI + 0xc78c1)" identifier = (cast_expression "(Table *)(unaff_EDI + 0xc78c1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc78c1)" ( (binary_expression "unaff_EDI + 0xc78c1" identifier + number_literal) )))) ;) (if_statement "if (iVar30 != 0) goto LAB_000f380e;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) })) })) })) (expression_statement "local_170 = (undefined1 *)0x0;" (assignment_expression "local_170 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }" for ( (assignment_expression "pIVar21 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ; (binary_expression "pIVar21 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pIVar21 = pIVar21->pNext" identifier = (field_expression "pIVar21->pNext" identifier -> field_identifier)) ) (compound_statement "{\n        pTVar48 = (Table *)pTVar20->pIndex;\n        if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }\n        while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }\n      }" { (expression_statement "pTVar48 = (Table *)pTVar20->pIndex;" (assignment_expression "pTVar48 = (Table *)pTVar20->pIndex" identifier = (cast_expression "(Table *)pTVar20->pIndex" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar20->pIndex" identifier -> field_identifier))) ;) (if_statement "if (pIVar21->onError != '\0') {\n          local_170 = (undefined1 *)0x1;\n        }" if (parenthesized_expression "(pIVar21->onError != '\0')" ( (binary_expression "pIVar21->onError != '\0'" (field_expression "pIVar21->onError" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_170 = (undefined1 *)0x1;\n        }" { (expression_statement "local_170 = (undefined1 *)0x1;" (assignment_expression "local_170 = (undefined1 *)0x1" identifier = (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (while_statement "while( true ) {\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (pTVar48 == (Table *)0x0) goto LAB_000f380e;\n          if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;\n          pTVar48 = (Table *)pTVar48->zColAff;\n        }" { (if_statement "if (pTVar48 == (Table *)0x0) goto LAB_000f380e;" if (parenthesized_expression "(pTVar48 == (Table *)0x0)" ( (binary_expression "pTVar48 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)) break;" if (parenthesized_expression "(((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0))" ( (binary_expression "((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))) &&\n             (iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)" (parenthesized_expression "((pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2)))" ( (binary_expression "(pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32) &&\n              (pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))" (parenthesized_expression "(pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32)" ( (binary_expression "pIVar21->nKeyCol == *(u16 *)&pTVar48->field_0x32" (field_expression "pIVar21->nKeyCol" identifier -> field_identifier) == (pointer_expression "*(u16 *)&pTVar48->field_0x32" * (cast_expression "(u16 *)&pTVar48->field_0x32" ( (type_descriptor "u16 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar48->field_0x32" & (field_expression "pTVar48->field_0x32" identifier -> field_identifier))))) )) && (parenthesized_expression "(pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2))" ( (binary_expression "pIVar21->onError == *(u8 *)((int)&pTVar48->addColOffset + 2)" (field_expression "pIVar21->onError" identifier -> field_identifier) == (pointer_expression "*(u8 *)((int)&pTVar48->addColOffset + 2)" * (cast_expression "(u8 *)((int)&pTVar48->addColOffset + 2)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar48->addColOffset + 2)" ( (binary_expression "(int)&pTVar48->addColOffset + 2" (cast_expression "(int)&pTVar48->addColOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar48->addColOffset" & (field_expression "pTVar48->addColOffset" identifier -> field_identifier))) + number_literal) ))))) ))) )) && (parenthesized_expression "(iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0)" ( (comma_expression "iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48), iVar13 != 0" (assignment_expression "iVar13 = xferCompatibleIndex(pIVar21,(Index *)pTVar48)" identifier = (call_expression "xferCompatibleIndex(pIVar21,(Index *)pTVar48)" identifier (argument_list "(pIVar21,(Index *)pTVar48)" ( identifier , (cast_expression "(Index *)pTVar48" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "pTVar48 = (Table *)pTVar48->zColAff;" (assignment_expression "pTVar48 = (Table *)pTVar48->zColAff" identifier = (cast_expression "(Table *)pTVar48->zColAff" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar48->zColAff" identifier -> field_identifier))) ;) })) })) (if_statement "if ((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;" if (parenthesized_expression "((((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0))" ( (binary_expression "(((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))) ||\n         ((psVar28->flags & 0x80) != 0)" (parenthesized_expression "(((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0))))" ( (binary_expression "((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)) ||\n          (((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))" (parenthesized_expression "((pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0))" ( (binary_expression "(pTab->pCheck != (ExprList *)0x0) &&\n           (iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)" (parenthesized_expression "(pTab->pCheck != (ExprList *)0x0)" ( (binary_expression "pTab->pCheck != (ExprList *)0x0" (field_expression "pTab->pCheck" identifier -> field_identifier) != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0)" ( (comma_expression "iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1), iVar13 != 0" (assignment_expression "iVar13 = sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1)" identifier = (call_expression "sqlite3ExprListCompare(pTVar20->pCheck,pTab->pCheck,-1)" identifier (argument_list "(pTVar20->pCheck,pTab->pCheck,-1)" ( (field_expression "pTVar20->pCheck" identifier -> field_identifier) , (field_expression "pTab->pCheck" identifier -> field_identifier) , number_literal )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)))" ( (parenthesized_expression "((psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0))" ( (binary_expression "(psVar28->flags & 0x4000) != 0 && (pTab->pFKey != (FKey *)0x0)" (binary_expression "(psVar28->flags & 0x4000) != 0" (parenthesized_expression "(psVar28->flags & 0x4000)" ( (binary_expression "psVar28->flags & 0x4000" (field_expression "psVar28->flags" identifier -> field_identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(pTab->pFKey != (FKey *)0x0)" ( (binary_expression "pTab->pFKey != (FKey *)0x0" (field_expression "pTab->pFKey" identifier -> field_identifier) != (cast_expression "(FKey *)0x0" ( (type_descriptor "FKey *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) || (parenthesized_expression "((psVar28->flags & 0x80) != 0)" ( (binary_expression "(psVar28->flags & 0x80) != 0" (parenthesized_expression "(psVar28->flags & 0x80)" ( (binary_expression "psVar28->flags & 0x80" (field_expression "psVar28->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (pTVar20->pSchema == (Schema *)0x0) {\n        local_140 = -1000000;\n      }\n      else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }" if (parenthesized_expression "(pTVar20->pSchema == (Schema *)0x0)" ( (binary_expression "pTVar20->pSchema == (Schema *)0x0" (field_expression "pTVar20->pSchema" identifier -> field_identifier) == (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_140 = -1000000;\n      }" { (expression_statement "local_140 = -1000000;" (assignment_expression "local_140 = -1000000" identifier = number_literal) ;) }) (else_clause "else {\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }" else (compound_statement "{\n        local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);\n      }" { (expression_statement "local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema);" (assignment_expression "local_140 = sqlite3SchemaToIndex(psVar28,pTVar20->pSchema)" identifier = (call_expression "sqlite3SchemaToIndex(psVar28,pTVar20->pSchema)" identifier (argument_list "(psVar28,pTVar20->pSchema)" ( identifier , (field_expression "pTVar20->pSchema" identifier -> field_identifier) )))) ;) }))) (expression_statement "pVVar47 = pParse_00->pVdbe;" (assignment_expression "pVVar47 = pParse_00->pVdbe" identifier = (field_expression "pParse_00->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (pVVar47 == (Vdbe *)0x0) {\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }" if (parenthesized_expression "(pVVar47 == (Vdbe *)0x0)" ( (binary_expression "pVVar47 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pVVar47 = sqlite3GetVdbe(pParse_00);\n      }" { (expression_statement "pVVar47 = sqlite3GetVdbe(pParse_00);" (assignment_expression "pVVar47 = sqlite3GetVdbe(pParse_00)" identifier = (call_expression "sqlite3GetVdbe(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier )))) ;) })) (expression_statement "sqlite3CodeVerifySchema(pParse_00,local_140);" (call_expression "sqlite3CodeVerifySchema(pParse_00,local_140)" identifier (argument_list "(pParse_00,local_140)" ( identifier , identifier ))) ;) (expression_statement "iVar13 = pParse_00->nTab;" (assignment_expression "iVar13 = pParse_00->nTab" identifier = (field_expression "pParse_00->nTab" identifier -> field_identifier)) ;) (expression_statement "local_12c = (Table *)0x0;" (assignment_expression "local_12c = (Table *)0x0" identifier = (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pParse_00->nTab = iVar13 + 2;" (assignment_expression "pParse_00->nTab = iVar13 + 2" (field_expression "pParse_00->nTab" identifier -> field_identifier) = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) (if_statement "if ((pTab->tabFlags & 8) != 0) {\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }" if (parenthesized_expression "((pTab->tabFlags & 8) != 0)" ( (binary_expression "(pTab->tabFlags & 8) != 0" (parenthesized_expression "(pTab->tabFlags & 8)" ( (binary_expression "pTab->tabFlags & 8" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n      }" { (expression_statement "local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);" (assignment_expression "local_12c = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab)" identifier = (cast_expression "(Table *)autoIncBegin(pParse_00,(int)local_134,pTab)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "autoIncBegin(pParse_00,(int)local_134,pTab)" identifier (argument_list "(pParse_00,(int)local_134,pTab)" ( identifier , (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))))) ;) })) (expression_statement "uVar2 = pParse_00->nTempReg;" (assignment_expression "uVar2 = pParse_00->nTempReg" identifier = (field_expression "pParse_00->nTempReg" identifier -> field_identifier)) ;) (if_statement "if (uVar2 == '\0') {\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }\n      else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }" if (parenthesized_expression "(uVar2 == '\0')" ( (binary_expression "uVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_168 = (AutoincInfo *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)local_168;\nLAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);\n        pParse_00->nMem = (int)pTVar48;\n        local_16c = pTVar48;\n      }" { (expression_statement "local_168 = (AutoincInfo *)(pParse_00->nMem + 1);" (assignment_expression "local_168 = (AutoincInfo *)(pParse_00->nMem + 1)" identifier = (cast_expression "(AutoincInfo *)(pParse_00->nMem + 1)" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse_00->nMem + 1)" ( (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pParse_00->nMem = (int)local_168;" (assignment_expression "pParse_00->nMem = (int)local_168" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000f592a:\n        pTVar48 = (Table *)(pParse_00->nMem + 1);" statement_identifier : (expression_statement "pTVar48 = (Table *)(pParse_00->nMem + 1);" (assignment_expression "pTVar48 = (Table *)(pParse_00->nMem + 1)" identifier = (cast_expression "(Table *)(pParse_00->nMem + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse_00->nMem + 1)" ( (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal) )))) ;)) (expression_statement "pParse_00->nMem = (int)pTVar48;" (assignment_expression "pParse_00->nMem = (int)pTVar48" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_16c = pTVar48;" (assignment_expression "local_16c = pTVar48" identifier = identifier) ;) }) (else_clause "else {\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }" else (compound_statement "{\n        bVar1 = uVar2 - 1;\n        pParse_00->nTempReg = bVar1;\n        local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];\n        if (bVar1 == 0) goto LAB_000f592a;\n        pParse_00->nTempReg = uVar2 - 2;\n        local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n      }" { (expression_statement "bVar1 = uVar2 - 1;" (assignment_expression "bVar1 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "pParse_00->nTempReg = bVar1;" (assignment_expression "pParse_00->nTempReg = bVar1" (field_expression "pParse_00->nTempReg" identifier -> field_identifier) = identifier) ;) (expression_statement "local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1];" (assignment_expression "local_168 = (AutoincInfo *)pParse_00->aTempReg[bVar1]" identifier = (cast_expression "(AutoincInfo *)pParse_00->aTempReg[bVar1]" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse_00->aTempReg[bVar1]" (field_expression "pParse_00->aTempReg" identifier -> field_identifier) [ identifier ]))) ;) (if_statement "if (bVar1 == 0) goto LAB_000f592a;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f592a;" goto statement_identifier ;)) (expression_statement "pParse_00->nTempReg = uVar2 - 2;" (assignment_expression "pParse_00->nTempReg = uVar2 - 2" (field_expression "pParse_00->nTempReg" identifier -> field_identifier) = (binary_expression "uVar2 - 2" identifier - number_literal)) ;) (expression_statement "local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];" (assignment_expression "local_16c = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)]" identifier = (cast_expression "(Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)]" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse_00->aTempReg[(byte)(uVar2 - 2)]" (field_expression "pParse_00->aTempReg" identifier -> field_identifier) [ (call_expression "(byte)(uVar2 - 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar2 - 2)" ( (binary_expression "uVar2 - 2" identifier - number_literal) ))) ]))) ;) }))) (expression_statement "iVar41 = iVar13 + 1;" (assignment_expression "iVar41 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar30 = 0x6e;" (assignment_expression "iVar30 = 0x6e" identifier = number_literal) ;) (expression_statement "sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48);" (call_expression "sqlite3OpenTable(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48)" identifier (argument_list "(pParse_00,(int)pTab,0x6e,pTVar48,(int)pTVar48)" ( identifier , (cast_expression "(int)pTab" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "psVar32 = extraout_ECX_02;" (assignment_expression "psVar32 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if ((psVar28->mDbFlags & 4) == 0) {\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }\n      else {\n        local_170 = (undefined1 *)0x0;\n      }" if (parenthesized_expression "((psVar28->mDbFlags & 4) == 0)" ( (binary_expression "(psVar28->mDbFlags & 4) == 0" (parenthesized_expression "(psVar28->mDbFlags & 4)" ( (binary_expression "psVar28->mDbFlags & 4" (field_expression "psVar28->mDbFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }\n      }" { (if_statement "if (((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))) {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }" if (parenthesized_expression "(((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3)))))" ( (binary_expression "((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)) ||\n           ((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))" (parenthesized_expression "((pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0))" ( (binary_expression "(pTab->iPKey < 0) && (pTab->pIndex != (Index *)0x0)" (parenthesized_expression "(pTab->iPKey < 0)" ( (binary_expression "pTab->iPKey < 0" (field_expression "pTab->iPKey" identifier -> field_identifier) < number_literal) )) && (parenthesized_expression "(pTab->pIndex != (Index *)0x0)" ( (binary_expression "pTab->pIndex != (Index *)0x0" (field_expression "pTab->pIndex" identifier -> field_identifier) != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))))" ( (parenthesized_expression "(local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3)))" ( (binary_expression "local_170 != (undefined1 *)0x0 ||\n            (&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))" (binary_expression "local_170 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3))" ( (binary_expression "&DAT_00000001 < (undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3)" (pointer_expression "&DAT_00000001" & identifier) < (cast_expression "(undefined1 *)((int)&local_14c[-1].a[0].pIBIndex + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_14c[-1].a[0].pIBIndex + 3)" ( (binary_expression "(int)&local_14c[-1].a[0].pIBIndex + 3" (cast_expression "(int)&local_14c[-1].a[0].pIBIndex" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_14c[-1].a[0].pIBIndex" & (field_expression "local_14c[-1].a[0].pIBIndex" (subscript_expression "local_14c[-1].a[0]" (field_expression "local_14c[-1].a" (subscript_expression "local_14c[-1]" identifier [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ))) )) ))) )) (compound_statement "{\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);\n          local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);\n          if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }\n          psVar32 = pVVar47->db;\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n        }" { (expression_statement "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30);" (assignment_expression "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x24,iVar41,0,iVar30)" identifier (argument_list "(pVVar47,0x24,iVar41,0,iVar30)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30);" (assignment_expression "local_170 = (undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30)" identifier = (cast_expression "(undefined1 *)sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3VdbeAddOp3(pVVar47,0xb,0,0,iVar30)" identifier (argument_list "(pVVar47,0xb,0,0,iVar30)" ( identifier , number_literal , number_literal , number_literal , identifier ))))) ;) (if_statement "if (iVar17 < 0) {\n            iVar17 = pVVar47->nOp + -1;\n          }" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar17 = pVVar47->nOp + -1;\n          }" { (expression_statement "iVar17 = pVVar47->nOp + -1;" (assignment_expression "iVar17 = pVVar47->nOp + -1" identifier = (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "psVar32 = pVVar47->db;" (assignment_expression "psVar32 = pVVar47->db" identifier = (field_expression "pVVar47->db" identifier -> field_identifier)) ;) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (psVar32->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar17;\n          }" if (parenthesized_expression "(psVar32->mallocFailed == '\0')" ( (binary_expression "psVar32->mallocFailed == '\0'" (field_expression "psVar32->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pOVar26 = pVVar47->aOp + iVar17;\n          }" { (expression_statement "pOVar26 = pVVar47->aOp + iVar17;" (assignment_expression "pOVar26 = pVVar47->aOp + iVar17" identifier = (binary_expression "pVVar47->aOp + iVar17" (field_expression "pVVar47->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = pVVar47->nOp;" (assignment_expression "pOVar26->p2 = pVVar47->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "pVVar47->nOp" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n        local_170 = (undefined1 *)0x0;\n      }" else (compound_statement "{\n        local_170 = (undefined1 *)0x0;\n      }" { (expression_statement "local_170 = (undefined1 *)0x0;" (assignment_expression "local_170 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((pTVar20->tabFlags & 0x20) == 0) {\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }\n      else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }" if (parenthesized_expression "((pTVar20->tabFlags & 0x20) == 0)" ( (binary_expression "(pTVar20->tabFlags & 0x20) == 0" (parenthesized_expression "(pTVar20->tabFlags & 0x20)" ( (binary_expression "pTVar20->tabFlags & 0x20" (field_expression "pTVar20->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar30 = 0x6d;\n        sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);\n        local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);\n        if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }\n        uVar34 = 0x29;\n        iVar30 = 1;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }\n        pTVar42 = local_16c;\n        iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);\n        sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }" { (expression_statement "iVar30 = 0x6d;" (assignment_expression "iVar30 = 0x6d" identifier = number_literal) ;) (expression_statement "sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32);" (call_expression "sqlite3OpenTable(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32)" identifier (argument_list "(pParse_00,(int)pTVar20,0x6d,(Table *)psVar32,(int)psVar32)" ( identifier , (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(Table *)psVar32" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)psVar32" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30);" (assignment_expression "local_130 = sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,iVar30)" identifier (argument_list "(pVVar47,0x24,iVar13,0,iVar30)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (pTab->iPKey < 0) {\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }\n        else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }" if (parenthesized_expression "(pTab->iPKey < 0)" ( (binary_expression "pTab->iPKey < 0" (field_expression "pTab->iPKey" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }\n        }" { (if_statement "if (pTab->pIndex == (Index *)0x0) {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }\n          else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }" if (parenthesized_expression "(pTab->pIndex == (Index *)0x0)" ( (binary_expression "pTab->pIndex == (Index *)0x0" (field_expression "pTab->pIndex" identifier -> field_identifier) == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);\n          }" { (expression_statement "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30);" (assignment_expression "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x79,iVar41,(int)local_16c,iVar30)" identifier (argument_list "(pVVar47,0x79,iVar41,(int)local_16c,iVar30)" ( identifier , number_literal , identifier , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) }) (else_clause "else {\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }" else (compound_statement "{\n            iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          }" { (expression_statement "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);" (assignment_expression "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" identifier (argument_list "(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" ( identifier , number_literal , identifier , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) }))) }) (else_clause "else {\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }" else (compound_statement "{\n          iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);\n          pTVar42 = local_16c;\n          iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);\n          sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);\n          if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }\n          pOVar26->p2 = pVVar47->nOp;\n          if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }\n        }" { (expression_statement "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30);" (assignment_expression "iVar17 = sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" identifier (argument_list "(pVVar47,0x80,iVar13,(int)local_16c,iVar30)" ( identifier , number_literal , identifier , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "pTVar42 = local_16c;" (assignment_expression "pTVar42 = local_16c" identifier = identifier) ;) (expression_statement "iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c);" (assignment_expression "iVar30 = sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x1f,iVar41,0,(int)local_16c)" identifier (argument_list "(pVVar47,0x1f,iVar41,0,(int)local_16c)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab);" (call_expression "sqlite3RowidConstraint(pParse_00,(int)local_14c,pTab)" identifier (argument_list "(pParse_00,(int)local_14c,pTab)" ( identifier , (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (if_statement "if (iVar30 < 0) {\n            iVar30 = pVVar47->nOp + -1;\n          }" if (parenthesized_expression "(iVar30 < 0)" ( (binary_expression "iVar30 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar30 = pVVar47->nOp + -1;\n          }" { (expression_statement "iVar30 = pVVar47->nOp + -1;" (assignment_expression "iVar30 = pVVar47->nOp + -1" identifier = (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (pVVar47->db->mallocFailed == '\0') {\n            pOVar26 = pVVar47->aOp + iVar30;\n          }" if (parenthesized_expression "(pVVar47->db->mallocFailed == '\0')" ( (binary_expression "pVVar47->db->mallocFailed == '\0'" (field_expression "pVVar47->db->mallocFailed" (field_expression "pVVar47->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pOVar26 = pVVar47->aOp + iVar30;\n          }" { (expression_statement "pOVar26 = pVVar47->aOp + iVar30;" (assignment_expression "pOVar26 = pVVar47->aOp + iVar30" identifier = (binary_expression "pVVar47->aOp + iVar30" (field_expression "pVVar47->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = pVVar47->nOp;" (assignment_expression "pOVar26->p2 = pVVar47->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "pVVar47->nOp" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)local_12c) {\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }" if (parenthesized_expression "(0 < (int)local_12c)" ( (binary_expression "0 < (int)local_12c" number_literal < (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);\n          }" { (expression_statement "sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42)" identifier (argument_list "(pParse_00->pVdbe,0x97,(int)local_12c,(int)local_16c,(int)pTVar42)" ( (field_expression "pParse_00->pVdbe" identifier -> field_identifier) , number_literal , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) }))) (expression_statement "uVar34 = 0x29;" (assignment_expression "uVar34 = 0x29" identifier = number_literal) ;) (expression_statement "iVar30 = 1;" (assignment_expression "iVar30 = 1" identifier = number_literal) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1)" identifier (argument_list "(pVVar47,0x7f,iVar13,(int)local_168,1)" ( identifier , number_literal , identifier , (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal ))) ;) (if_statement "if ((psVar28->mDbFlags & 4) != 0) {\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }" if (parenthesized_expression "((psVar28->mDbFlags & 4) != 0)" ( (binary_expression "(psVar28->mDbFlags & 4) != 0" (parenthesized_expression "(psVar28->mDbFlags & 4)" ( (binary_expression "psVar28->mDbFlags & 4" (field_expression "psVar28->mDbFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar34 = 0x39;\n          sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);\n        }" { (expression_statement "uVar34 = 0x39;" (assignment_expression "uVar34 = 0x39" identifier = number_literal) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,iVar30)" identifier (argument_list "(pVVar47,0x82,iVar41,0,iVar30)" ( identifier , number_literal , identifier , number_literal , identifier ))) ;) })) (expression_statement "pTVar42 = local_16c;" (assignment_expression "pTVar42 = local_16c" identifier = identifier) ;) (expression_statement "iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c);" (assignment_expression "iVar30 = sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c)" identifier = (call_expression "sqlite3VdbeAddOp3(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c)" identifier (argument_list "(pVVar47,0x7a,iVar41,(int)local_168,(int)local_16c)" ( identifier , number_literal , identifier , (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6);" (call_expression "sqlite3VdbeChangeP4(pVVar47,iVar30,(char *)pTab,-6)" identifier (argument_list "(pVVar47,iVar30,(char *)pTab,-6)" ( identifier , identifier , (cast_expression "(char *)pTab" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (if_statement "if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }" if (parenthesized_expression "(0 < pVVar47->nOp)" ( (binary_expression "0 < pVVar47->nOp" number_literal < (field_expression "pVVar47->nOp" identifier -> field_identifier)) )) (compound_statement "{\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;\n        }" { (expression_statement "pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34;" (assignment_expression "pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar34" (field_expression "pVVar47->aOp[pVVar47->nOp + -1].p5" (subscript_expression "pVVar47->aOp[pVVar47->nOp + -1]" (field_expression "pVVar47->aOp" identifier -> field_identifier) [ (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = identifier) ;) })) (expression_statement "sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,5,iVar13,iVar17,(int)pTVar42)" identifier (argument_list "(pVVar47,5,iVar13,iVar17,(int)pTVar42)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x75,iVar13,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x75,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }" else (compound_statement "{\n        sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);\n        pTVar42 = (Table *)pTVar20->zName;\n        sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);\n        local_130 = 0;\n      }" { (expression_statement "sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName);" (call_expression "sqlite3TableLock(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName)" identifier (argument_list "(pParse_00,(int)local_134,pTab->tnum,'\x01',pTab->zName)" ( identifier , (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) , (field_expression "pTab->tnum" identifier -> field_identifier) , (char_literal "'\x01'" ' escape_sequence ') , (field_expression "pTab->zName" identifier -> field_identifier) ))) ;) (expression_statement "pTVar42 = (Table *)pTVar20->zName;" (assignment_expression "pTVar42 = (Table *)pTVar20->zName" identifier = (cast_expression "(Table *)pTVar20->zName" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar20->zName" identifier -> field_identifier))) ;) (expression_statement "sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42);" (call_expression "sqlite3TableLock(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42)" identifier (argument_list "(pParse_00,local_140,pTVar20->tnum,'\0',(char *)pTVar42)" ( identifier , identifier , (field_expression "pTVar20->tnum" identifier -> field_identifier) , (char_literal "'\0'" ' escape_sequence ') , (cast_expression "(char *)pTVar42" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar51 = (char *)(unaff_EDI + 0x67fba);" (assignment_expression "pcVar51 = (char *)(unaff_EDI + 0x67fba)" identifier = (cast_expression "(char *)(unaff_EDI + 0x67fba)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x67fba)" ( (binary_expression "unaff_EDI + 0x67fba" identifier + number_literal) )))) ;) (for_statement "for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }" for ( (assignment_expression "pIVar21 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ; (binary_expression "pIVar21 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pIVar21 = pIVar21->pNext" identifier = (field_expression "pIVar21->pNext" identifier -> field_identifier)) ) (compound_statement "{\n        pSrc = pTVar20->pIndex;\n        while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }\n        uVar52 = extraout_ECX_03;\n        sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);\n        sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);\n        sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);\n        sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }\n        p3_00 = pcVar51;\n        sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);\n        local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);\n        uVar39 = 0;\n        pTVar42 = (Table *)&DAT_00000001;\n        sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);\n        if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }\nLAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);\n        if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }\n        sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);\n        if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n      }" { (expression_statement "pSrc = pTVar20->pIndex;" (assignment_expression "pSrc = pTVar20->pIndex" identifier = (field_expression "pTVar20->pIndex" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }\n          if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;\n          pSrc = pSrc->pNext;\n        }" { (if_statement "if (pSrc == (Index *)0x0) {\n            sqlite3Insert_cold_1036();\n            return;\n          }" if (parenthesized_expression "(pSrc == (Index *)0x0)" ( (binary_expression "pSrc == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sqlite3Insert_cold_1036();\n            return;\n          }" { (expression_statement "sqlite3Insert_cold_1036();" (call_expression "sqlite3Insert_cold_1036()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)) break;" if (parenthesized_expression "(((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0))" ( (binary_expression "((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)) &&\n             (iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)" (parenthesized_expression "((pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError))" ( (binary_expression "(pIVar21->nKeyCol == pSrc->nKeyCol) && (pIVar21->onError == pSrc->onError)" (parenthesized_expression "(pIVar21->nKeyCol == pSrc->nKeyCol)" ( (binary_expression "pIVar21->nKeyCol == pSrc->nKeyCol" (field_expression "pIVar21->nKeyCol" identifier -> field_identifier) == (field_expression "pSrc->nKeyCol" identifier -> field_identifier)) )) && (parenthesized_expression "(pIVar21->onError == pSrc->onError)" ( (binary_expression "pIVar21->onError == pSrc->onError" (field_expression "pIVar21->onError" identifier -> field_identifier) == (field_expression "pSrc->onError" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0)" ( (comma_expression "iVar30 = xferCompatibleIndex(pIVar21,pSrc), iVar30 != 0" (assignment_expression "iVar30 = xferCompatibleIndex(pIVar21,pSrc)" identifier = (call_expression "xferCompatibleIndex(pIVar21,pSrc)" identifier (argument_list "(pIVar21,pSrc)" ( identifier , identifier )))) , (binary_expression "iVar30 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "pSrc = pSrc->pNext;" (assignment_expression "pSrc = pSrc->pNext" identifier = (field_expression "pSrc->pNext" identifier -> field_identifier)) ;) })) (expression_statement "uVar52 = extraout_ECX_03;" (assignment_expression "uVar52 = extraout_ECX_03" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x6d,iVar13,pSrc->tnum,local_140)" identifier (argument_list "(pVVar47,0x6d,iVar13,pSrc->tnum,local_140)" ( identifier , number_literal , identifier , (field_expression "pSrc->tnum" identifier -> field_identifier) , identifier ))) ;) (expression_statement "sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc);" (call_expression "sqlite3VdbeSetP4KeyInfo(pParse_00,pSrc)" identifier (argument_list "(pParse_00,pSrc)" ( identifier , identifier ))) ;) (expression_statement "sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52);" (call_expression "sqlite3VdbeComment(pVVar47,pcVar51,pSrc->zName,uVar52)" identifier (argument_list "(pVVar47,pcVar51,pSrc->zName,uVar52)" ( identifier , identifier , (field_expression "pSrc->zName" identifier -> field_identifier) , identifier ))) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134)" identifier (argument_list "(pVVar47,0x6e,iVar41,pIVar21->tnum,(int)local_134)" ( identifier , number_literal , identifier , (field_expression "pIVar21->tnum" identifier -> field_identifier) , (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21);" (call_expression "sqlite3VdbeSetP4KeyInfo(pParse_00,pIVar21)" identifier (argument_list "(pParse_00,pIVar21)" ( identifier , identifier ))) ;) (if_statement "if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }" if (parenthesized_expression "(0 < pVVar47->nOp)" ( (binary_expression "0 < pVVar47->nOp" number_literal < (field_expression "pVVar47->nOp" identifier -> field_identifier)) )) (compound_statement "{\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;\n        }" { (expression_statement "pVVar47->aOp[pVVar47->nOp + -1].p5 = 1;" (assignment_expression "pVVar47->aOp[pVVar47->nOp + -1].p5 = 1" (field_expression "pVVar47->aOp[pVVar47->nOp + -1].p5" (subscript_expression "pVVar47->aOp[pVVar47->nOp + -1]" (field_expression "pVVar47->aOp" identifier -> field_identifier) [ (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = number_literal) ;) })) (expression_statement "p3_00 = pcVar51;" (assignment_expression "p3_00 = pcVar51" identifier = identifier) ;) (expression_statement "sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04);" (call_expression "sqlite3VdbeComment(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04)" identifier (argument_list "(pVVar47,pcVar51,pIVar21->zName,extraout_ECX_04)" ( identifier , identifier , (field_expression "pIVar21->zName" identifier -> field_identifier) , identifier ))) ;) (expression_statement "local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00);" (assignment_expression "local_14c = (SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00)" identifier = (cast_expression "(SrcList *)sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00)" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3VdbeAddOp3(pVVar47,0x24,iVar13,0,(int)p3_00)" identifier (argument_list "(pVVar47,0x24,iVar13,0,(int)p3_00)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)p3_00" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "pTVar42 = (Table *)&DAT_00000001;" (assignment_expression "pTVar42 = (Table *)&DAT_00000001" identifier = (cast_expression "(Table *)&DAT_00000001" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x7f,iVar13,(int)local_168,1)" identifier (argument_list "(pVVar47,0x7f,iVar13,(int)local_168,1)" ( identifier , number_literal , identifier , (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal ))) ;) (if_statement "if ((psVar28->mDbFlags & 4) != 0) {\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }" if (parenthesized_expression "((psVar28->mDbFlags & 4) != 0)" ( (binary_expression "(psVar28->mDbFlags & 4) != 0" (parenthesized_expression "(psVar28->mDbFlags & 4)" ( (binary_expression "psVar28->mDbFlags & 4" (field_expression "psVar28->mDbFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar3 = pSrc->nColumn;\n          for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar39 = 0;\n          if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }\n        }" { (expression_statement "uVar3 = pSrc->nColumn;" (assignment_expression "uVar3 = pSrc->nColumn" identifier = (field_expression "pSrc->nColumn" identifier -> field_identifier)) ;) (for_statement "for (uVar43 = 0; (int)uVar43 < (int)(uint)uVar3; uVar43 = uVar43 + 1) {\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }" for ( (assignment_expression "uVar43 = 0" identifier = number_literal) ; (binary_expression "(int)uVar43 < (int)(uint)uVar3" (cast_expression "(int)uVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)uVar3" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier))) ; (assignment_expression "uVar43 = uVar43 + 1" identifier = (binary_expression "uVar43 + 1" identifier + number_literal)) ) (compound_statement "{\n            if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }\n          }" { (if_statement "if ((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)) {\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }" if (parenthesized_expression "((pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0))" ( (binary_expression "(pSrc->azColl[uVar43] == (char *)0x0) ||\n               (iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)" (parenthesized_expression "(pSrc->azColl[uVar43] == (char *)0x0)" ( (binary_expression "pSrc->azColl[uVar43] == (char *)0x0" (subscript_expression "pSrc->azColl[uVar43]" (field_expression "pSrc->azColl" identifier -> field_identifier) [ identifier ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0)" ( (comma_expression "iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43]),\n               iVar30 != 0" (assignment_expression "iVar30 = sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43])" identifier = (call_expression "sqlite3_stricmp((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43])" identifier (argument_list "((char *)(unaff_EDI + 0x760a9),pSrc->azColl[uVar43])" ( (cast_expression "(char *)(unaff_EDI + 0x760a9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x760a9)" ( (binary_expression "unaff_EDI + 0x760a9" identifier + number_literal) ))) , (subscript_expression "pSrc->azColl[uVar43]" (field_expression "pSrc->azColl" identifier -> field_identifier) [ identifier ]) )))) , (binary_expression "iVar30 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar39 = 0;\n              goto LAB_000f55d2;\n            }" { (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000f55d2;" goto statement_identifier ;) })) })) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (if_statement "if (uVar43 == uVar3) {\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }" if (parenthesized_expression "(uVar43 == uVar3)" ( (binary_expression "uVar43 == uVar3" identifier == identifier) )) (compound_statement "{\n            uVar39 = 0x10;\n            sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);\n          }" { (expression_statement "uVar39 = 0x10;" (assignment_expression "uVar39 = 0x10" identifier = number_literal) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x82,iVar41,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x82,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) })) (labeled_statement "LAB_000f55d2:\n        if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }" statement_identifier : (if_statement "if (((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)) {\n          uVar39 = uVar39 | 1;\n        }" if (parenthesized_expression "(((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2))" ( (binary_expression "((pTVar20->tabFlags & 0x20) != 0) && ((pIVar21->field_0x37 & 3) == 2)" (parenthesized_expression "((pTVar20->tabFlags & 0x20) != 0)" ( (binary_expression "(pTVar20->tabFlags & 0x20) != 0" (parenthesized_expression "(pTVar20->tabFlags & 0x20)" ( (binary_expression "pTVar20->tabFlags & 0x20" (field_expression "pTVar20->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((pIVar21->field_0x37 & 3) == 2)" ( (binary_expression "(pIVar21->field_0x37 & 3) == 2" (parenthesized_expression "(pIVar21->field_0x37 & 3)" ( (binary_expression "pIVar21->field_0x37 & 3" (field_expression "pIVar21->field_0x37" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar39 = uVar39 | 1;\n        }" { (expression_statement "uVar39 = uVar39 | 1;" (assignment_expression "uVar39 = uVar39 | 1" identifier = (binary_expression "uVar39 | 1" identifier | number_literal)) ;) }))) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42)" identifier (argument_list "(pVVar47,0x84,iVar41,(int)local_168,(int)pTVar42)" ( identifier , number_literal , identifier , (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (0 < pVVar47->nOp) {\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }" if (parenthesized_expression "(0 < pVVar47->nOp)" ( (binary_expression "0 < pVVar47->nOp" number_literal < (field_expression "pVVar47->nOp" identifier -> field_identifier)) )) (compound_statement "{\n          pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;\n        }" { (expression_statement "pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8;" (assignment_expression "pVVar47->aOp[pVVar47->nOp + -1].p5 = uVar39 | 8" (field_expression "pVVar47->aOp[pVVar47->nOp + -1].p5" (subscript_expression "pVVar47->aOp[pVVar47->nOp + -1]" (field_expression "pVVar47->aOp" identifier -> field_identifier) [ (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = (binary_expression "uVar39 | 8" identifier | number_literal)) ;) })) (expression_statement "sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42)" identifier (argument_list "(pVVar47,5,iVar13,(int)local_14c + 1,(int)pTVar42)" ( identifier , number_literal , identifier , (binary_expression "(int)local_14c + 1" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if ((int)local_14c < 0) {\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }" if (parenthesized_expression "((int)local_14c < 0)" ( (binary_expression "(int)local_14c < 0" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_14c = (SrcList *)(pVVar47->nOp + -1);\n        }" { (expression_statement "local_14c = (SrcList *)(pVVar47->nOp + -1);" (assignment_expression "local_14c = (SrcList *)(pVVar47->nOp + -1)" identifier = (cast_expression "(SrcList *)(pVVar47->nOp + -1)" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVVar47->nOp + -1)" ( (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal) )))) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }" if (parenthesized_expression "(pVVar47->db->mallocFailed == '\0')" ( (binary_expression "pVVar47->db->mallocFailed == '\0'" (field_expression "pVVar47->db->mallocFailed" (field_expression "pVVar47->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pOVar26 = pVVar47->aOp + (int)local_14c;\n        }" { (expression_statement "pOVar26 = pVVar47->aOp + (int)local_14c;" (assignment_expression "pOVar26 = pVVar47->aOp + (int)local_14c" identifier = (binary_expression "pVVar47->aOp + (int)local_14c" (field_expression "pVVar47->aOp" identifier -> field_identifier) + (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "pOVar26->p2 = pVVar47->nOp;" (assignment_expression "pOVar26->p2 = pVVar47->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "pVVar47->nOp" identifier -> field_identifier)) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x75,iVar13,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x75,iVar13,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x75,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (if_statement "if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n      }" { (if_statement "if ((int)local_130 < 0) {\n          local_130 = pVVar47->nOp + -1;\n        }" if (parenthesized_expression "((int)local_130 < 0)" ( (binary_expression "(int)local_130 < 0" (cast_expression "(int)local_130" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_130 = pVVar47->nOp + -1;\n        }" { (expression_statement "local_130 = pVVar47->nOp + -1;" (assignment_expression "local_130 = pVVar47->nOp + -1" identifier = (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + local_130;\n        }" if (parenthesized_expression "(pVVar47->db->mallocFailed == '\0')" ( (binary_expression "pVVar47->db->mallocFailed == '\0'" (field_expression "pVVar47->db->mallocFailed" (field_expression "pVVar47->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pOVar26 = pVVar47->aOp + local_130;\n        }" { (expression_statement "pOVar26 = pVVar47->aOp + local_130;" (assignment_expression "pOVar26 = pVVar47->aOp + local_130" identifier = (binary_expression "pVVar47->aOp + local_130" (field_expression "pVVar47->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = pVVar47->nOp;" (assignment_expression "pOVar26->p2 = pVVar47->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "pVVar47->nOp" identifier -> field_identifier)) ;) })) (if_statement "if (local_16c != (Table *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }" if (parenthesized_expression "(local_16c != (Table *)0x0)" ( (binary_expression "local_16c != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3ReleaseTempReg(pParse_00,(int)local_16c);\n      }" { (expression_statement "sqlite3ReleaseTempReg(pParse_00,(int)local_16c);" (call_expression "sqlite3ReleaseTempReg(pParse_00,(int)local_16c)" identifier (argument_list "(pParse_00,(int)local_16c)" ( identifier , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (if_statement "if (local_168 != (AutoincInfo *)0x0) {\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }" if (parenthesized_expression "(local_168 != (AutoincInfo *)0x0)" ( (binary_expression "local_168 != (AutoincInfo *)0x0" identifier != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3ReleaseTempReg(pParse_00,(int)local_168);\n      }" { (expression_statement "sqlite3ReleaseTempReg(pParse_00,(int)local_168);" (call_expression "sqlite3ReleaseTempReg(pParse_00,(int)local_168)" identifier (argument_list "(pParse_00,(int)local_168)" ( identifier , (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "uVar12._4_4_ = sNC.pSrcList;" (assignment_expression "uVar12._4_4_ = sNC.pSrcList" (field_expression "uVar12._4_4_" identifier . field_identifier) = (field_expression "sNC.pSrcList" identifier . field_identifier)) ;) (expression_statement "uVar12._0_4_ = sNC.pParse;" (assignment_expression "uVar12._0_4_ = sNC.pParse" (field_expression "uVar12._0_4_" identifier . field_identifier) = (field_expression "sNC.pParse" identifier . field_identifier)) ;) (expression_statement "uVar11._4_4_ = sNC.pSrcList;" (assignment_expression "uVar11._4_4_ = sNC.pSrcList" (field_expression "uVar11._4_4_" identifier . field_identifier) = (field_expression "sNC.pSrcList" identifier . field_identifier)) ;) (expression_statement "uVar11._0_4_ = sNC.pParse;" (assignment_expression "uVar11._0_4_ = sNC.pParse" (field_expression "uVar11._0_4_" identifier . field_identifier) = (field_expression "sNC.pParse" identifier . field_identifier)) ;) (if_statement "if (local_170 != (undefined1 *)0x0) {\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }" if (parenthesized_expression "(local_170 != (undefined1 *)0x0)" ( (binary_expression "local_170 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }\n        sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);\n        if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }\n        pOVar26->p2 = pVVar47->nOp;\n        sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);\n        goto LAB_000f380e;\n      }" { (if_statement "if (pParse_00->pAinc != (AutoincInfo *)0x0) {\n          autoIncrementEnd(pParse_00);\n        }" if (parenthesized_expression "(pParse_00->pAinc != (AutoincInfo *)0x0)" ( (binary_expression "pParse_00->pAinc != (AutoincInfo *)0x0" (field_expression "pParse_00->pAinc" identifier -> field_identifier) != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          autoIncrementEnd(pParse_00);\n        }" { (expression_statement "autoIncrementEnd(pParse_00);" (call_expression "autoIncrementEnd(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier ))) ;) })) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x45,0,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x45,0,0,(int)pTVar42)" ( identifier , number_literal , number_literal , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if ((int)local_170 < 0) {\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }" if (parenthesized_expression "((int)local_170 < 0)" ( (binary_expression "(int)local_170 < 0" (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_170 = (undefined1 *)(pVVar47->nOp + -1);\n        }" { (expression_statement "local_170 = (undefined1 *)(pVVar47->nOp + -1);" (assignment_expression "local_170 = (undefined1 *)(pVVar47->nOp + -1)" identifier = (cast_expression "(undefined1 *)(pVVar47->nOp + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVVar47->nOp + -1)" ( (binary_expression "pVVar47->nOp + -1" (field_expression "pVVar47->nOp" identifier -> field_identifier) + number_literal) )))) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (pVVar47->db->mallocFailed == '\0') {\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }" if (parenthesized_expression "(pVVar47->db->mallocFailed == '\0')" ( (binary_expression "pVVar47->db->mallocFailed == '\0'" (field_expression "pVVar47->db->mallocFailed" (field_expression "pVVar47->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pOVar26 = pVVar47->aOp + (int)local_170;\n        }" { (expression_statement "pOVar26 = pVVar47->aOp + (int)local_170;" (assignment_expression "pOVar26 = pVVar47->aOp + (int)local_170" identifier = (binary_expression "pVVar47->aOp + (int)local_170" (field_expression "pVVar47->aOp" identifier -> field_identifier) + (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "pOVar26->p2 = pVVar47->nOp;" (assignment_expression "pOVar26->p2 = pVVar47->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "pVVar47->nOp" identifier -> field_identifier)) ;) (expression_statement "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pVVar47,0x75,iVar41,0,(int)pTVar42)" identifier (argument_list "(pVVar47,0x75,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;) })) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }" if (parenthesized_expression "(((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0))" ( (binary_expression "((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)" (parenthesized_expression "((pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0))" ( (binary_expression "(pParse_00->nested == '\0') &&\n          (sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)" (parenthesized_expression "(pParse_00->nested == '\0')" ( (binary_expression "pParse_00->nested == '\0'" (field_expression "pParse_00->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0)" ( (comma_expression "sNC._0_8_ = uVar11, pParse_00->pTriggerTab == (Table *)0x0" (assignment_expression "sNC._0_8_ = uVar11" (field_expression "sNC._0_8_" identifier . field_identifier) = identifier) , (binary_expression "pParse_00->pTriggerTab == (Table *)0x0" (field_expression "pParse_00->pTriggerTab" identifier -> field_identifier) == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0)" ( (comma_expression "local_17c = pParse_00->pAinc, sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0" (assignment_expression "local_17c = pParse_00->pAinc" identifier = (field_expression "pParse_00->pAinc" identifier -> field_identifier)) , (comma_expression "sNC._0_8_ = uVar12, local_17c != (AutoincInfo *)0x0" (assignment_expression "sNC._0_8_ = uVar12" (field_expression "sNC._0_8_" identifier . field_identifier) = identifier) , (binary_expression "local_17c != (AutoincInfo *)0x0" identifier != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n        autoIncrementEnd(pParse_00);\n        local_17c = (AutoincInfo *)0x0;\n      }" { (expression_statement "autoIncrementEnd(pParse_00);" (call_expression "autoIncrementEnd(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f380e:\n    local_118 = (Table *)0x0;" statement_identifier : (expression_statement "local_118 = (Table *)0x0;" (assignment_expression "local_118 = (Table *)0x0" identifier = (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((pTab->tabFlags & 8) != 0) {\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }" if (parenthesized_expression "((pTab->tabFlags & 8) != 0)" ( (binary_expression "(pTab->tabFlags & 8) != 0" (parenthesized_expression "(pTab->tabFlags & 8)" ( (binary_expression "pTab->tabFlags & 8" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);\n    }" { (expression_statement "local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab);" (assignment_expression "local_118 = (Table *)autoIncBegin(pParse_00,(int)local_134,pTab)" identifier = (cast_expression "(Table *)autoIncBegin(pParse_00,(int)local_134,pTab)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "autoIncBegin(pParse_00,(int)local_134,pTab)" identifier (argument_list "(pParse_00,(int)local_134,pTab)" ( identifier , (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))))) ;) })) (expression_statement "local_110 = (Table *)pParse_00->nMem;" (assignment_expression "local_110 = (Table *)pParse_00->nMem" identifier = (cast_expression "(Table *)pParse_00->nMem" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse_00->nMem" identifier -> field_identifier))) ;) (expression_statement "iVar13 = (int)&local_110->zName + pTab->nCol + 1;" (assignment_expression "iVar13 = (int)&local_110->zName + pTab->nCol + 1" identifier = (binary_expression "(int)&local_110->zName + pTab->nCol + 1" (binary_expression "(int)&local_110->zName + pTab->nCol" (cast_expression "(int)&local_110->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_110->zName" & (field_expression "local_110->zName" identifier -> field_identifier))) + (field_expression "pTab->nCol" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "pTVar20 = (Table *)((int)&local_110->zName + 1);" (assignment_expression "pTVar20 = (Table *)((int)&local_110->zName + 1)" identifier = (cast_expression "(Table *)((int)&local_110->zName + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_110->zName + 1)" ( (binary_expression "(int)&local_110->zName + 1" (cast_expression "(int)&local_110->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_110->zName" & (field_expression "local_110->zName" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pParse_00->nMem = iVar13;" (assignment_expression "pParse_00->nMem = iVar13" (field_expression "pParse_00->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "local_12c = pTVar20;" (assignment_expression "local_12c = pTVar20" identifier = identifier) ;) (if_statement "if (pTab->nModuleArg != 0) {\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }" if (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      local_12c = (Table *)((int)&local_110->zName + 2);\n      pParse_00->nMem = iVar13 + 1;\n      local_110 = pTVar20;\n    }" { (expression_statement "local_12c = (Table *)((int)&local_110->zName + 2);" (assignment_expression "local_12c = (Table *)((int)&local_110->zName + 2)" identifier = (cast_expression "(Table *)((int)&local_110->zName + 2)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_110->zName + 2)" ( (binary_expression "(int)&local_110->zName + 2" (cast_expression "(int)&local_110->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_110->zName" & (field_expression "local_110->zName" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pParse_00->nMem = iVar13 + 1;" (assignment_expression "pParse_00->nMem = iVar13 + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_110 = pTVar20;" (assignment_expression "local_110 = pTVar20" identifier = identifier) ;) })) (expression_statement "uVar14 = uVar14 & 0x20;" (assignment_expression "uVar14 = uVar14 & 0x20" identifier = (binary_expression "uVar14 & 0x20" identifier & number_literal)) ;) (expression_statement "local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;" (assignment_expression "local_130 = (pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01" identifier = (binary_expression "(pTab->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01" (parenthesized_expression "(pTab->tabFlags >> 7 & 0xff ^ 1)" ( (binary_expression "pTab->tabFlags >> 7 & 0xff ^ 1" (binary_expression "pTab->tabFlags >> 7 & 0xff" (binary_expression "pTab->tabFlags >> 7" (field_expression "pTab->tabFlags" identifier -> field_identifier) >> number_literal) & number_literal) ^ number_literal) )) & number_literal)) ;) (if_statement "if ((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }" if (parenthesized_expression "((pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1))" ( (binary_expression "(pParse == (Parse *)0x0) || ((int)pParse->zErrMsg < 1)" (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((int)pParse->zErrMsg < 1)" ( (binary_expression "(int)pParse->zErrMsg < 1" (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier)) < number_literal) ))) )) (compound_statement "{\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }" { (labeled_statement "LAB_000f4012:\n      local_140 = 0xffffffff;" statement_identifier : (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }" else (compound_statement "{\n      iVar13 = 0;\n      do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);\n      if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;\n      local_14c = (SrcList *)0x0;\n      local_140 = 0xffffffff;\n      local_170 = (undefined1 *)(int)pTab->nCol;\n      do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      } while (iVar13 < (int)pParse->zErrMsg);" do (compound_statement "{\n        pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;\n        iVar13 = iVar13 + 1;\n      }" { (expression_statement "pParse->db->aLimit[iVar13 * 2 + -0x19] = -1;" (assignment_expression "pParse->db->aLimit[iVar13 * 2 + -0x19] = -1" (subscript_expression "pParse->db->aLimit[iVar13 * 2 + -0x19]" (field_expression "pParse->db->aLimit" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) [ (binary_expression "iVar13 * 2 + -0x19" (binary_expression "iVar13 * 2" identifier * number_literal) + number_literal) ]) = number_literal) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 < (int)pParse->zErrMsg)" ( (binary_expression "iVar13 < (int)pParse->zErrMsg" identifier < (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier))) )) ;) (if_statement "if ((int)pParse->zErrMsg < 1) goto LAB_000f4012;" if (parenthesized_expression "((int)pParse->zErrMsg < 1)" ( (binary_expression "(int)pParse->zErrMsg < 1" (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier)) < number_literal) )) (goto_statement "goto LAB_000f4012;" goto statement_identifier ;)) (expression_statement "local_14c = (SrcList *)0x0;" (assignment_expression "local_14c = (SrcList *)0x0" identifier = (cast_expression "(SrcList *)0x0" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_170 = (undefined1 *)(int)pTab->nCol;" (assignment_expression "local_170 = (undefined1 *)(int)pTab->nCol" identifier = (cast_expression "(undefined1 *)(int)pTab->nCol" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier)))) ;) (do_statement "do {\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      } while ((int)local_14c < (int)pParse->zErrMsg);" do (compound_statement "{\n        piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;\n        local_174 = (sqlite3 *)*piVar15;\n        if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }\nLAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);\n        if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = (uint)local_14c;\nLAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);\n      }" { (expression_statement "piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a;" (assignment_expression "piVar15 = pParse->db->aLimit + (int)local_14c * 2 + -0x1a" identifier = (binary_expression "pParse->db->aLimit + (int)local_14c * 2 + -0x1a" (binary_expression "pParse->db->aLimit + (int)local_14c * 2" (field_expression "pParse->db->aLimit" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) + (binary_expression "(int)local_14c * 2" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "local_174 = (sqlite3 *)*piVar15;" (assignment_expression "local_174 = (sqlite3 *)*piVar15" identifier = (cast_expression "(sqlite3 *)*piVar15" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar15" * identifier))) ;) (if_statement "if (0 < (int)local_170) {\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }" if (parenthesized_expression "(0 < (int)local_170)" ( (binary_expression "0 < (int)local_170" number_literal < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar43 = 0;\n          iVar13 = unaff_EDI + 0x76279;\n          do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);\n        }" { (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = unaff_EDI + 0x76279;" (assignment_expression "iVar13 = unaff_EDI + 0x76279" identifier = (binary_expression "unaff_EDI + 0x76279" identifier + number_literal)) ;) (do_statement "do {\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          } while ((undefined1 *)uVar43 != local_170);" do (compound_statement "{\n            pbVar6 = (byte *)pTab->aCol[uVar43].zName;\n            pbVar35 = (byte *)local_174;\n            bVar1 = *(byte *)local_174;\n            if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }\n            uVar43 = uVar43 + 1;\n          }" { (expression_statement "pbVar6 = (byte *)pTab->aCol[uVar43].zName;" (assignment_expression "pbVar6 = (byte *)pTab->aCol[uVar43].zName" identifier = (cast_expression "(byte *)pTab->aCol[uVar43].zName" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTab->aCol[uVar43].zName" (subscript_expression "pTab->aCol[uVar43]" (field_expression "pTab->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (expression_statement "pbVar35 = (byte *)local_174;" (assignment_expression "pbVar35 = (byte *)local_174" identifier = (cast_expression "(byte *)local_174" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = *(byte *)local_174;" (assignment_expression "bVar1 = *(byte *)local_174" identifier = (pointer_expression "*(byte *)local_174" * (cast_expression "(byte *)local_174" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)) {\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }" if (parenthesized_expression "(*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174))" ( (binary_expression "*(char *)(iVar13 + (uint)*pbVar6) ==\n                *(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)" (pointer_expression "*(char *)(iVar13 + (uint)*pbVar6)" * (cast_expression "(char *)(iVar13 + (uint)*pbVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + (uint)*pbVar6)" ( (binary_expression "iVar13 + (uint)*pbVar6" identifier + (binary_expression "(uint)*pbVar6" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) == (pointer_expression "*(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)" * (cast_expression "(char *)(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x76279 + (uint)*(byte *)local_174)" ( (binary_expression "unaff_EDI + 0x76279 + (uint)*(byte *)local_174" (binary_expression "unaff_EDI + 0x76279" identifier + number_literal) + (binary_expression "(uint)*(byte *)local_174" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_174" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))))) )) (compound_statement "{\n              do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));\n            }" { (do_statement "do {\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              } while (*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6));" do (compound_statement "{\n                if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }\n                pbVar6 = pbVar6 + 1;\n                pbVar35 = pbVar35 + 1;\n                bVar1 = *pbVar35;\n              }" { (if_statement "if (bVar1 == 0) {\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar15[1] = uVar43;\n                  if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }\n                  local_170 = (undefined1 *)(int)pTab->nCol;\n                  if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];\n                  goto LAB_000f399e;\n                }" { (expression_statement "piVar15[1] = uVar43;" (assignment_expression "piVar15[1] = uVar43" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((SrcList *)uVar43 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }" if (parenthesized_expression "((SrcList *)uVar43 != local_14c)" ( (binary_expression "(SrcList *)uVar43 != local_14c" (cast_expression "(SrcList *)uVar43" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n                    local_130._0_1_ = 0;\n                  }" { (expression_statement "local_130._0_1_ = 0;" (assignment_expression "local_130._0_1_ = 0" (field_expression "local_130._0_1_" identifier . field_identifier) = number_literal) ;) })) (expression_statement "local_130 = (uint)(byte)local_130;" (assignment_expression "local_130 = (uint)(byte)local_130" identifier = (cast_expression "(uint)(byte)local_130" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if ((int)pTab->iPKey == uVar43) {\n                    local_140 = (uint)local_14c;\n                  }" if (parenthesized_expression "((int)pTab->iPKey == uVar43)" ( (binary_expression "(int)pTab->iPKey == uVar43" (cast_expression "(int)pTab->iPKey" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->iPKey" identifier -> field_identifier)) == identifier) )) (compound_statement "{\n                    local_140 = (uint)local_14c;\n                  }" { (expression_statement "local_140 = (uint)local_14c;" (assignment_expression "local_140 = (uint)local_14c" identifier = (cast_expression "(uint)local_14c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "local_170 = (undefined1 *)(int)pTab->nCol;" (assignment_expression "local_170 = (undefined1 *)(int)pTab->nCol" identifier = (cast_expression "(undefined1 *)(int)pTab->nCol" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier)))) ;) (if_statement "if ((int)uVar43 < (int)local_170) goto LAB_000f39c8;" if (parenthesized_expression "((int)uVar43 < (int)local_170)" ( (binary_expression "(int)uVar43 < (int)local_170" (cast_expression "(int)uVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000f39c8;" goto statement_identifier ;)) (expression_statement "local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a];" (assignment_expression "local_174 = (sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a]" identifier = (cast_expression "(sqlite3 *)pParse->db->aLimit[(int)local_14c * 2 + -0x1a]" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse->db->aLimit[(int)local_14c * 2 + -0x1a]" (field_expression "pParse->db->aLimit" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) [ (binary_expression "(int)local_14c * 2 + -0x1a" (binary_expression "(int)local_14c * 2" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) ;) (goto_statement "goto LAB_000f399e;" goto statement_identifier ;) })) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + 1;" (assignment_expression "pbVar35 = pbVar35 + 1" identifier = (binary_expression "pbVar35 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar35;" (assignment_expression "bVar1 = *pbVar35" identifier = (pointer_expression "*pbVar35" * identifier)) ;) }) while (parenthesized_expression "(*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6))" ( (binary_expression "*(char *)(iVar13 + (uint)bVar1) == *(char *)(iVar13 + (uint)*pbVar6)" (pointer_expression "*(char *)(iVar13 + (uint)bVar1)" * (cast_expression "(char *)(iVar13 + (uint)bVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + (uint)bVar1)" ( (binary_expression "iVar13 + (uint)bVar1" identifier + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) == (pointer_expression "*(char *)(iVar13 + (uint)*pbVar6)" * (cast_expression "(char *)(iVar13 + (uint)*pbVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + (uint)*pbVar6)" ( (binary_expression "iVar13 + (uint)*pbVar6" identifier + (binary_expression "(uint)*pbVar6" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) )) ;) })) (expression_statement "uVar43 = uVar43 + 1;" (assignment_expression "uVar43 = uVar43 + 1" identifier = (binary_expression "uVar43 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined1 *)uVar43 != local_170)" ( (binary_expression "(undefined1 *)uVar43 != local_170" (cast_expression "(undefined1 *)uVar43" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (labeled_statement "LAB_000f399e:\n        iVar13 = sqlite3IsRowid((char *)local_174);" statement_identifier : (expression_statement "iVar13 = sqlite3IsRowid((char *)local_174);" (assignment_expression "iVar13 = sqlite3IsRowid((char *)local_174)" identifier = (call_expression "sqlite3IsRowid((char *)local_174)" identifier (argument_list "((char *)local_174)" ( (cast_expression "(char *)local_174" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if ((iVar13 == 0) || (uVar14 != 0)) {\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }" if (parenthesized_expression "((iVar13 == 0) || (uVar14 != 0))" ( (binary_expression "(iVar13 == 0) || (uVar14 != 0)" (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);\n          pParse_00->checkSchema = '\x01';\n          local_17c = (AutoincInfo *)0x0;\n          goto LAB_000f3673;\n        }" { (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174)" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0x77cf9),pList,0,local_174)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x77cf9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77cf9)" ( (binary_expression "unaff_EDI + 0x77cf9" identifier + number_literal) ))) , identifier , number_literal , identifier ))) ;) (expression_statement "pParse_00->checkSchema = '\x01';" (assignment_expression "pParse_00->checkSchema = '\x01'" (field_expression "pParse_00->checkSchema" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) (expression_statement "local_140 = (uint)local_14c;" (assignment_expression "local_140 = (uint)local_14c" identifier = (cast_expression "(uint)local_14c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_000f39c8:\n        local_14c = (SrcList *)((int)local_14c + 1);" statement_identifier : (expression_statement "local_14c = (SrcList *)((int)local_14c + 1);" (assignment_expression "local_14c = (SrcList *)((int)local_14c + 1)" identifier = (cast_expression "(SrcList *)((int)local_14c + 1)" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_14c + 1)" ( (binary_expression "(int)local_14c + 1" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)local_14c < (int)pParse->zErrMsg)" ( (binary_expression "(int)local_14c < (int)pParse->zErrMsg" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier))) )) ;) }))) (expression_statement "puVar16 = (undefined1 *)((int)&local_12c->zName + 1);" (assignment_expression "puVar16 = (undefined1 *)((int)&local_12c->zName + 1)" identifier = (cast_expression "(undefined1 *)((int)&local_12c->zName + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_12c->zName + 1)" ( (binary_expression "(int)&local_12c->zName + 1" (cast_expression "(int)&local_12c->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_12c->zName" & (field_expression "local_12c->zName" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (local_158 == (Table *)0x0) {\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }\n    else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }" if (parenthesized_expression "(local_158 == (Table *)0x0)" ( (binary_expression "local_158 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar43 = 0;\n      do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);\n      bVar9 = false;\n      sNC.pParse = pParse_00;\n      if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }\n    }" { (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      } while (uVar43 < 0x1c);" do (compound_statement "{\n        *(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;\n        uVar43 = uVar43 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0;" (assignment_expression "*(undefined4 *)((int)sCol + (uVar43 - 0x1c)) = 0" (pointer_expression "*(undefined4 *)((int)sCol + (uVar43 - 0x1c))" * (cast_expression "(undefined4 *)((int)sCol + (uVar43 - 0x1c))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)sCol + (uVar43 - 0x1c))" ( (binary_expression "(int)sCol + (uVar43 - 0x1c)" (cast_expression "(int)sCol" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar43 - 0x1c)" ( (binary_expression "uVar43 - 0x1c" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar43 = uVar43 + 4;" (assignment_expression "uVar43 = uVar43 + 4" identifier = (binary_expression "uVar43 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar43 < 0x1c)" ( (binary_expression "uVar43 < 0x1c" identifier < number_literal) )) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "sNC.pParse = pParse_00;" (assignment_expression "sNC.pParse = pParse_00" (field_expression "sNC.pParse" identifier . field_identifier) = identifier) ;) (if_statement "if (local_148 == (Vdbe *)0x0) {\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }\n      else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }" if (parenthesized_expression "(local_148 == (Vdbe *)0x0)" ( (binary_expression "local_148 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_170 = (undefined1 *)0x0;\n        uVar43 = 0;\n        local_174 = (sqlite3 *)0x0;\n        iVar13 = -1;\n      }" { (expression_statement "local_170 = (undefined1 *)0x0;" (assignment_expression "local_170 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (expression_statement "local_174 = (sqlite3 *)0x0;" (assignment_expression "local_174 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }" else (compound_statement "{\n        iVar13 = 0;\n        local_174 = local_148->db;\n        ppVVar46 = &local_148->pPrev;\n        p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);\n        if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = (undefined1 *)0x0;\n        iVar13 = -1;\n        uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "local_174 = local_148->db;" (assignment_expression "local_174 = local_148->db" identifier = (field_expression "local_148->db" identifier -> field_identifier)) ;) (expression_statement "ppVVar46 = &local_148->pPrev;" (assignment_expression "ppVVar46 = &local_148->pPrev" identifier = (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier))) ;) (expression_statement "p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327);" (assignment_expression "p_Var53 = (_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327)" identifier = (cast_expression "(_func_int_Walker_ptr_Expr_ptr *)(unaff_EDI + -0x50327)" ( (type_descriptor "_func_int_Walker_ptr_Expr_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x50327)" ( (binary_expression "unaff_EDI + -0x50327" identifier + number_literal) )))) ;) (if_statement "if (0 < (int)local_174) {\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" if (parenthesized_expression "(0 < (int)local_174)" ( (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);\n          local_170 = (undefined1 *)0x0;\n          iVar13 = -1;\n          local_16c._0_1_ = pParse == (Parse *)0x0;\n          uVar43 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" { (do_statement "do {\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          } while (iVar13 < (int)local_148->db);" do (compound_statement "{\n            pVVar47 = *ppVVar46;\n            if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar13 = iVar13 + 1;\n            ppVVar46 = ppVVar46 + 5;\n          }" { (expression_statement "pVVar47 = *ppVVar46;" (assignment_expression "pVVar47 = *ppVVar46" identifier = (pointer_expression "*ppVVar46" * identifier)) ;) (if_statement "if (pVVar47 != (Vdbe *)0x0) {\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }" if (parenthesized_expression "(pVVar47 != (Vdbe *)0x0)" ( (binary_expression "pVVar47 != (Vdbe *)0x0" identifier != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar34 = sNC.ncFlags;\n              w.u.pNC = &sNC;\n              w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;\n              sNC._24_4_ = sNC._24_4_ & 0xffff6fef;\n              w.pParse = sNC.pParse;\n              iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;\n              (sNC.pParse)->nHeight = iVar30;\n              iVar41 = (sNC.pParse)->db->aLimit[3];\n              w.xExprCallback = p_Var53;\n              w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);\n              if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }\n              sqlite3SrcListDelete(db,pList);\n              exprListDeleteNN(db,(ExprList *)local_148);\n              local_17c = (AutoincInfo *)0x0;\n              if (pSelect != (Select *)0x0) goto LAB_000f36b0;\n              if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }\n              goto LAB_000f374a;\n            }" { (expression_statement "uVar34 = sNC.ncFlags;" (assignment_expression "uVar34 = sNC.ncFlags" identifier = (field_expression "sNC.ncFlags" identifier . field_identifier)) ;) (expression_statement "w.u.pNC = &sNC;" (assignment_expression "w.u.pNC = &sNC" (field_expression "w.u.pNC" (field_expression "w.u" identifier . field_identifier) . field_identifier) = (pointer_expression "&sNC" & identifier)) ;) (expression_statement "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0;" (assignment_expression "w.xSelectCallback2 = (_func_void_Walker_ptr_Select_ptr *)0x0" (field_expression "w.xSelectCallback2" identifier . field_identifier) = (cast_expression "(_func_void_Walker_ptr_Select_ptr *)0x0" ( (type_descriptor "_func_void_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sNC._24_4_ = sNC._24_4_ & 0xffff6fef;" (assignment_expression "sNC._24_4_ = sNC._24_4_ & 0xffff6fef" (field_expression "sNC._24_4_" identifier . field_identifier) = (binary_expression "sNC._24_4_ & 0xffff6fef" (field_expression "sNC._24_4_" identifier . field_identifier) & number_literal)) ;) (expression_statement "w.pParse = sNC.pParse;" (assignment_expression "w.pParse = sNC.pParse" (field_expression "w.pParse" identifier . field_identifier) = (field_expression "sNC.pParse" identifier . field_identifier)) ;) (expression_statement "iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight;" (assignment_expression "iVar30 = pVVar47->nMem + (sNC.pParse)->nHeight" identifier = (binary_expression "pVVar47->nMem + (sNC.pParse)->nHeight" (field_expression "pVVar47->nMem" identifier -> field_identifier) + (field_expression "(sNC.pParse)->nHeight" (parenthesized_expression "(sNC.pParse)" ( (field_expression "sNC.pParse" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "(sNC.pParse)->nHeight = iVar30;" (assignment_expression "(sNC.pParse)->nHeight = iVar30" (field_expression "(sNC.pParse)->nHeight" (parenthesized_expression "(sNC.pParse)" ( (field_expression "sNC.pParse" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "iVar41 = (sNC.pParse)->db->aLimit[3];" (assignment_expression "iVar41 = (sNC.pParse)->db->aLimit[3]" identifier = (subscript_expression "(sNC.pParse)->db->aLimit[3]" (field_expression "(sNC.pParse)->db->aLimit" (field_expression "(sNC.pParse)->db" (parenthesized_expression "(sNC.pParse)" ( (field_expression "sNC.pParse" identifier . field_identifier) )) -> field_identifier) -> field_identifier) [ number_literal ])) ;) (expression_statement "w.xExprCallback = p_Var53;" (assignment_expression "w.xExprCallback = p_Var53" (field_expression "w.xExprCallback" identifier . field_identifier) = identifier) ;) (expression_statement "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7);" (assignment_expression "w.xSelectCallback = (_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7)" (field_expression "w.xSelectCallback" identifier . field_identifier) = (cast_expression "(_func_int_Walker_ptr_Select_ptr *)(unaff_EDI + -0x606a7)" ( (type_descriptor "_func_int_Walker_ptr_Select_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x606a7)" ( (binary_expression "unaff_EDI + -0x606a7" identifier + number_literal) )))) ;) (if_statement "if (iVar41 < iVar30) {\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }\n              else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }" if (parenthesized_expression "(iVar41 < iVar30)" ( (binary_expression "iVar41 < iVar30" identifier < identifier) )) (compound_statement "{\n                sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);\n              }" { (expression_statement "sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41);" (call_expression "sqlite3ErrorMsg(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41)" identifier (argument_list "(sNC.pParse,(char *)(unaff_EDI + 0x768cd),iVar41)" ( (field_expression "sNC.pParse" identifier . field_identifier) , (cast_expression "(char *)(unaff_EDI + 0x768cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x768cd)" ( (binary_expression "unaff_EDI + 0x768cd" identifier + number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }" else (compound_statement "{\n                walkExpr(&w,(Expr *)pVVar47);\n                (w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;\n                if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }\n                if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }\n                sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;\n                if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;\n              }" { (expression_statement "walkExpr(&w,(Expr *)pVVar47);" (call_expression "walkExpr(&w,(Expr *)pVVar47)" identifier (argument_list "(&w,(Expr *)pVVar47)" ( (pointer_expression "&w" & identifier) , (cast_expression "(Expr *)pVVar47" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "(w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem;" (assignment_expression "(w.pParse)->nHeight = (w.pParse)->nHeight - pVVar47->nMem" (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) = (binary_expression "(w.pParse)->nHeight - pVVar47->nMem" (field_expression "(w.pParse)->nHeight" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) - (field_expression "pVVar47->nMem" identifier -> field_identifier))) ;) (if_statement "if ((sNC._24_4_ & 0x10) != 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }" if (parenthesized_expression "((sNC._24_4_ & 0x10) != 0)" ( (binary_expression "(sNC._24_4_ & 0x10) != 0" (parenthesized_expression "(sNC._24_4_ & 0x10)" ( (binary_expression "sNC._24_4_ & 0x10" (field_expression "sNC._24_4_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);\n                }" { (expression_statement "pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2);" (assignment_expression "pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 2)" (field_expression "pVVar47->pPrev" identifier -> field_identifier) = (cast_expression "(Vdbe *)((uint)pVVar47->pPrev | 2)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pVVar47->pPrev | 2)" ( (binary_expression "(uint)pVVar47->pPrev | 2" (cast_expression "(uint)pVVar47->pPrev" ( (type_descriptor "uint" type_identifier) ) (field_expression "pVVar47->pPrev" identifier -> field_identifier)) | number_literal) )))) ;) })) (if_statement "if ((short)sNC.ncFlags < 0) {\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }" if (parenthesized_expression "((short)sNC.ncFlags < 0)" ( (binary_expression "(short)sNC.ncFlags < 0" (cast_expression "(short)sNC.ncFlags" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "sNC.ncFlags" identifier . field_identifier)) < number_literal) )) (compound_statement "{\n                  pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);\n                }" { (expression_statement "pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000);" (assignment_expression "pVVar47->pPrev = (Vdbe *)((uint)pVVar47->pPrev | 0x8000000)" (field_expression "pVVar47->pPrev" identifier -> field_identifier) = (cast_expression "(Vdbe *)((uint)pVVar47->pPrev | 0x8000000)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pVVar47->pPrev | 0x8000000)" ( (binary_expression "(uint)pVVar47->pPrev | 0x8000000" (cast_expression "(uint)pVVar47->pPrev" ( (type_descriptor "uint" type_identifier) ) (field_expression "pVVar47->pPrev" identifier -> field_identifier)) | number_literal) )))) ;) })) (expression_statement "sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags;" (assignment_expression "sNC.ncFlags = uVar34 & 0x9010 | sNC.ncFlags" (field_expression "sNC.ncFlags" identifier . field_identifier) = (binary_expression "uVar34 & 0x9010 | sNC.ncFlags" (binary_expression "uVar34 & 0x9010" identifier & number_literal) | (field_expression "sNC.ncFlags" identifier . field_identifier))) ;) (if_statement "if ((sNC.nErr < 1) && ((w.pParse)->nErr < 1)) goto LAB_000f41e7;" if (parenthesized_expression "((sNC.nErr < 1) && ((w.pParse)->nErr < 1))" ( (binary_expression "(sNC.nErr < 1) && ((w.pParse)->nErr < 1)" (parenthesized_expression "(sNC.nErr < 1)" ( (binary_expression "sNC.nErr < 1" (field_expression "sNC.nErr" identifier . field_identifier) < number_literal) )) && (parenthesized_expression "((w.pParse)->nErr < 1)" ( (binary_expression "(w.pParse)->nErr < 1" (field_expression "(w.pParse)->nErr" (parenthesized_expression "(w.pParse)" ( (field_expression "w.pParse" identifier . field_identifier) )) -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_000f41e7;" goto statement_identifier ;)) }))) (expression_statement "sqlite3SrcListDelete(db,pList);" (call_expression "sqlite3SrcListDelete(db,pList)" identifier (argument_list "(db,pList)" ( identifier , identifier ))) ;) (expression_statement "exprListDeleteNN(db,(ExprList *)local_148);" (call_expression "exprListDeleteNN(db,(ExprList *)local_148)" identifier (argument_list "(db,(ExprList *)local_148)" ( identifier , (cast_expression "(ExprList *)local_148" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pSelect != (Select *)0x0) goto LAB_000f36b0;" if (parenthesized_expression "(pSelect != (Select *)0x0)" ( (binary_expression "pSelect != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f36b0;" goto statement_identifier ;)) (if_statement "if (pParse != (Parse *)0x0) {\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }" if (parenthesized_expression "(pParse != (Parse *)0x0)" ( (binary_expression "pParse != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sqlite3IdListDelete(db,(IdList *)pParse);\n              }" { (expression_statement "sqlite3IdListDelete(db,(IdList *)pParse);" (call_expression "sqlite3IdListDelete(db,(IdList *)pParse)" identifier (argument_list "(db,(IdList *)pParse)" ( identifier , (cast_expression "(IdList *)pParse" ( (type_descriptor "IdList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (goto_statement "goto LAB_000f374a;" goto statement_identifier ;) })) (labeled_statement "LAB_000f41e7:\n            iVar13 = iVar13 + 1;" statement_identifier : (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;)) (expression_statement "ppVVar46 = ppVVar46 + 5;" (assignment_expression "ppVVar46 = ppVVar46 + 5" identifier = (binary_expression "ppVVar46 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 < (int)local_148->db)" ( (binary_expression "iVar13 < (int)local_148->db" identifier < (cast_expression "(int)local_148->db" ( (type_descriptor "int" primitive_type) ) (field_expression "local_148->db" identifier -> field_identifier))) )) ;) (expression_statement "local_170 = (undefined1 *)0x0;" (assignment_expression "local_170 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "local_16c._0_1_ = pParse == (Parse *)0x0;" (assignment_expression "local_16c._0_1_ = pParse == (Parse *)0x0" (field_expression "local_16c._0_1_" identifier . field_identifier) = (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar43 = (uint)local_16c._0_1_;" (assignment_expression "uVar43 = (uint)local_16c._0_1_" identifier = (cast_expression "(uint)local_16c._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_16c._0_1_" identifier . field_identifier))) ;) (goto_statement "goto LAB_000f3c52;" goto statement_identifier ;) })) (expression_statement "local_170 = (undefined1 *)0x0;" (assignment_expression "local_170 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0);" (assignment_expression "uVar43 = (uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0)" identifier = (call_expression "(uint)(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0)" ( (binary_expression "pParse == (Parse *)0x0 && local_174 != (sqlite3 *)0x0" (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_174 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) }))) }) (else_clause "else {\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }" else (compound_statement "{\n      iVar41 = pParse_00->nMem + 1;\n      pParse_00->nMem = iVar41;\n      puVar40 = (undefined1 *)local_144->nOp;\n      pTVar42 = (Table *)(puVar40 + 1);\n      sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);\n      dest.eDest = '\r';\n      dest.zAffSdst = (char *)0x0;\n      dest.iSdst = (int)(undefined1 *)0x0;\n      if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }\n      dest.nSdst = (int)pTab->nCol;\n      dest.iSDParm = iVar41;\n      iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);\n      iVar30 = dest.iSdst;\n      if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;\n      local_170 = (undefined1 *)dest.iSdst;\n      sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);\n      local_144->pParse->nTempReg = '\0';\n      local_144->pParse->nRangeReg = 0;\n      psVar32 = (sqlite3 *)local_144->nOp;\n      psVar28 = local_144->db;\n      if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }\n      pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n      if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }\n      pOVar26->p2 = (int)psVar32;\n      local_174 = *(sqlite3 **)local_158->zName;\n      if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }\n    }" { (expression_statement "iVar41 = pParse_00->nMem + 1;" (assignment_expression "iVar41 = pParse_00->nMem + 1" identifier = (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse_00->nMem = iVar41;" (assignment_expression "pParse_00->nMem = iVar41" (field_expression "pParse_00->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar40 = (undefined1 *)local_144->nOp;" (assignment_expression "puVar40 = (undefined1 *)local_144->nOp" identifier = (cast_expression "(undefined1 *)local_144->nOp" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_144->nOp" identifier -> field_identifier))) ;) (expression_statement "pTVar42 = (Table *)(puVar40 + 1);" (assignment_expression "pTVar42 = (Table *)(puVar40 + 1)" identifier = (cast_expression "(Table *)(puVar40 + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 1)" ( (binary_expression "puVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0xd,iVar41,0,(int)pTVar42)" identifier (argument_list "(local_144,0xd,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "dest.eDest = '\r';" (assignment_expression "dest.eDest = '\r'" (field_expression "dest.eDest" identifier . field_identifier) = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "dest.zAffSdst = (char *)0x0;" (assignment_expression "dest.zAffSdst = (char *)0x0" (field_expression "dest.zAffSdst" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dest.iSdst = (int)(undefined1 *)0x0;" (assignment_expression "dest.iSdst = (int)(undefined1 *)0x0" (field_expression "dest.iSdst" identifier . field_identifier) = (cast_expression "(int)(undefined1 *)0x0" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((byte)local_130 != '\0') {\n        dest.iSdst = (int)puVar16;\n      }" if (parenthesized_expression "((byte)local_130 != '\0')" ( (binary_expression "(byte)local_130 != '\0'" (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        dest.iSdst = (int)puVar16;\n      }" { (expression_statement "dest.iSdst = (int)puVar16;" (assignment_expression "dest.iSdst = (int)puVar16" (field_expression "dest.iSdst" identifier . field_identifier) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "dest.nSdst = (int)pTab->nCol;" (assignment_expression "dest.nSdst = (int)pTab->nCol" (field_expression "dest.nSdst" identifier . field_identifier) = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) ;) (expression_statement "dest.iSDParm = iVar41;" (assignment_expression "dest.iSDParm = iVar41" (field_expression "dest.iSDParm" identifier . field_identifier) = identifier) ;) (expression_statement "iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest);" (assignment_expression "iVar13 = sqlite3Select(pParse_00,(Select *)local_158,&dest)" identifier = (call_expression "sqlite3Select(pParse_00,(Select *)local_158,&dest)" identifier (argument_list "(pParse_00,(Select *)local_158,&dest)" ( identifier , (cast_expression "(Select *)local_158" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&dest" & identifier) )))) ;) (expression_statement "iVar30 = dest.iSdst;" (assignment_expression "iVar30 = dest.iSdst" identifier = (field_expression "dest.iSdst" identifier . field_identifier)) ;) (if_statement "if (((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))\n      goto LAB_000f366b;" if (parenthesized_expression "(((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0))" ( (binary_expression "((iVar13 != 0) || (db->mallocFailed != '\0')) || (iVar13 = pParse_00->nErr, iVar13 != 0)" (parenthesized_expression "((iVar13 != 0) || (db->mallocFailed != '\0'))" ( (binary_expression "(iVar13 != 0) || (db->mallocFailed != '\0')" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "(db->mallocFailed != '\0')" ( (binary_expression "db->mallocFailed != '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar13 = pParse_00->nErr, iVar13 != 0)" ( (comma_expression "iVar13 = pParse_00->nErr, iVar13 != 0" (assignment_expression "iVar13 = pParse_00->nErr" identifier = (field_expression "pParse_00->nErr" identifier -> field_identifier)) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "local_170 = (undefined1 *)dest.iSdst;" (assignment_expression "local_170 = (undefined1 *)dest.iSdst" identifier = (cast_expression "(undefined1 *)dest.iSdst" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dest.iSdst" identifier . field_identifier))) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x43,iVar41,0,(int)pTVar42)" identifier (argument_list "(local_144,0x43,iVar41,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_144->pParse->nTempReg = '\0';" (assignment_expression "local_144->pParse->nTempReg = '\0'" (field_expression "local_144->pParse->nTempReg" (field_expression "local_144->pParse" identifier -> field_identifier) -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_144->pParse->nRangeReg = 0;" (assignment_expression "local_144->pParse->nRangeReg = 0" (field_expression "local_144->pParse->nRangeReg" (field_expression "local_144->pParse" identifier -> field_identifier) -> field_identifier) = number_literal) ;) (expression_statement "psVar32 = (sqlite3 *)local_144->nOp;" (assignment_expression "psVar32 = (sqlite3 *)local_144->nOp" identifier = (cast_expression "(sqlite3 *)local_144->nOp" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_144->nOp" identifier -> field_identifier))) ;) (expression_statement "psVar28 = local_144->db;" (assignment_expression "psVar28 = local_144->db" identifier = (field_expression "local_144->db" identifier -> field_identifier)) ;) (if_statement "if ((int)puVar40 < 0) {\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }" if (parenthesized_expression "((int)puVar40 < 0)" ( (binary_expression "(int)puVar40 < 0" (cast_expression "(int)puVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);\n      }" { (expression_statement "puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3);" (assignment_expression "puVar40 = (undefined1 *)((int)&psVar32[-1].pNextBlocked + 3)" identifier = (cast_expression "(undefined1 *)((int)&psVar32[-1].pNextBlocked + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar32[-1].pNextBlocked + 3)" ( (binary_expression "(int)&psVar32[-1].pNextBlocked + 3" (cast_expression "(int)&psVar32[-1].pNextBlocked" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar32[-1].pNextBlocked" & (field_expression "psVar32[-1].pNextBlocked" (subscript_expression "psVar32[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (psVar28->mallocFailed == '\0') {\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }" if (parenthesized_expression "(psVar28->mallocFailed == '\0')" ( (binary_expression "psVar28->mallocFailed == '\0'" (field_expression "psVar28->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        psVar28 = (sqlite3 *)((int)puVar40 * 3);\n        pOVar26 = local_144->aOp + (int)puVar40;\n      }" { (expression_statement "psVar28 = (sqlite3 *)((int)puVar40 * 3);" (assignment_expression "psVar28 = (sqlite3 *)((int)puVar40 * 3)" identifier = (cast_expression "(sqlite3 *)((int)puVar40 * 3)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar40 * 3)" ( (binary_expression "(int)puVar40 * 3" (cast_expression "(int)puVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pOVar26 = local_144->aOp + (int)puVar40;" (assignment_expression "pOVar26 = local_144->aOp + (int)puVar40" identifier = (binary_expression "local_144->aOp + (int)puVar40" (field_expression "local_144->aOp" identifier -> field_identifier) + (cast_expression "(int)puVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "pOVar26->p2 = (int)psVar32;" (assignment_expression "pOVar26->p2 = (int)psVar32" (field_expression "pOVar26->p2" identifier -> field_identifier) = (cast_expression "(int)psVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_174 = *(sqlite3 **)local_158->zName;" (assignment_expression "local_174 = *(sqlite3 **)local_158->zName" identifier = (pointer_expression "*(sqlite3 **)local_158->zName" * (cast_expression "(sqlite3 **)local_158->zName" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "local_158->zName" identifier -> field_identifier)))) ;) (if_statement "if (pTrigger == (Trigger *)0x0) {\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }\n      else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }" if (parenthesized_expression "(pTrigger == (Trigger *)0x0)" ( (binary_expression "pTrigger == (Trigger *)0x0" identifier == (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pVVar47 = pParse_00->pVdbe;\n        if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }\n        pVVar27 = (VTable *)0x0;\n        if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }\n        uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        bVar9 = false;\n        if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }\n      }" { (expression_statement "pVVar47 = pParse_00->pVdbe;" (assignment_expression "pVVar47 = pParse_00->pVdbe" identifier = (field_expression "pParse_00->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (pVVar47 == (Vdbe *)0x0) {\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }" if (parenthesized_expression "(pVVar47 == (Vdbe *)0x0)" ( (binary_expression "pVVar47 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pVVar47 = sqlite3GetVdbe(pParse_00);\n          psVar28 = extraout_ECX_05;\n          psVar32 = extraout_EDX_00;\n        }" { (expression_statement "pVVar47 = sqlite3GetVdbe(pParse_00);" (assignment_expression "pVVar47 = sqlite3GetVdbe(pParse_00)" identifier = (call_expression "sqlite3GetVdbe(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier )))) ;) (expression_statement "psVar28 = extraout_ECX_05;" (assignment_expression "psVar28 = extraout_ECX_05" identifier = identifier) ;) (expression_statement "psVar32 = extraout_EDX_00;" (assignment_expression "psVar32 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "pVVar27 = (VTable *)0x0;" (assignment_expression "pVVar27 = (VTable *)0x0" identifier = (cast_expression "(VTable *)0x0" ( (type_descriptor "VTable *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pTab->nModuleArg != 0) {\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }" if (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          psVar32 = pParse_00->db;\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n        }" { (expression_statement "psVar32 = pParse_00->db;" (assignment_expression "psVar32 = pParse_00->db" identifier = (field_expression "pParse_00->db" identifier -> field_identifier)) ;) (for_statement "for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }" for ( (assignment_expression "pVVar27 = pTab->pVTable" identifier = (field_expression "pTab->pVTable" identifier -> field_identifier)) ; (parenthesized_expression "(pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db))" ( (binary_expression "pVVar27 != (VTable *)0x0 && (psVar32 != pVVar27->db)" (binary_expression "pVVar27 != (VTable *)0x0" identifier != (cast_expression "(VTable *)0x0" ( (type_descriptor "VTable *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(psVar32 != pVVar27->db)" ( (binary_expression "psVar32 != pVVar27->db" identifier != (field_expression "pVVar27->db" identifier -> field_identifier)) ))) )) ; (assignment_expression "pVVar27 = pVVar27->pNext" identifier = (field_expression "pVVar27->pNext" identifier -> field_identifier)) ) (compound_statement "{\n          }" { })) })) (expression_statement "uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0);" (assignment_expression "uVar43 = CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0)" identifier (argument_list "((int3)((uint)psVar32 >> 8),pParse == (Parse *)0x0)" ( (call_expression "(int3)((uint)psVar32 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)psVar32 >> 8)" ( (binary_expression "(uint)psVar32 >> 8" (cast_expression "(uint)psVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;" (assignment_expression "uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43" identifier = (binary_expression "CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43" (call_expression "CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)psVar28 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)psVar28 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)psVar28 >> 8)" ( (binary_expression "(uint)psVar28 >> 8" (cast_expression "(uint)psVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar29,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar29,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar29,0)" identifier (argument_list "(uVar29,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;" (assignment_expression "uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43" identifier = (binary_expression "CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43" (call_expression "CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0)" identifier (argument_list "((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0)" ( (call_expression "(int3)(uVar29 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar29 >> 8)" ( (binary_expression "uVar29 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (if_statement "if (1 < pVVar47->nOp) {\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }" if (parenthesized_expression "(1 < pVVar47->nOp)" ( (binary_expression "1 < pVVar47->nOp" number_literal < (field_expression "pVVar47->nOp" identifier -> field_identifier)) )) (compound_statement "{\n          iVar41 = 1;\n          do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);\n        }" { (expression_statement "iVar41 = 1;" (assignment_expression "iVar41 = 1" identifier = number_literal) ;) (do_statement "do {\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          } while (pVVar47->nOp != iVar41);" do (compound_statement "{\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }\n            if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;\n            iVar41 = iVar41 + 1;\n          }" { (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (pVVar47->db->mallocFailed == '\0') {\n              pOVar26 = pVVar47->aOp + iVar41;\n            }" if (parenthesized_expression "(pVVar47->db->mallocFailed == '\0')" ( (binary_expression "pVVar47->db->mallocFailed == '\0'" (field_expression "pVVar47->db->mallocFailed" (field_expression "pVVar47->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pOVar26 = pVVar47->aOp + iVar41;\n            }" { (expression_statement "pOVar26 = pVVar47->aOp + iVar41;" (assignment_expression "pOVar26 = pVVar47->aOp + iVar41" identifier = (binary_expression "pVVar47->aOp + iVar41" (field_expression "pVVar47->aOp" identifier -> field_identifier) + identifier)) ;) })) (if_statement "if (pOVar26->opcode == 'm') {\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;" if (parenthesized_expression "(pOVar26->opcode == 'm')" ( (binary_expression "pOVar26->opcode == 'm'" (field_expression "pOVar26->opcode" identifier -> field_identifier) == (char_literal "'m'" ' character ')) )) (compound_statement "{\n              if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }\n            }" { (if_statement "if (local_134 == (ExprList_item *)pOVar26->p3) {\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }" if (parenthesized_expression "(local_134 == (ExprList_item *)pOVar26->p3)" ( (binary_expression "local_134 == (ExprList_item *)pOVar26->p3" identifier == (cast_expression "(ExprList_item *)pOVar26->p3" ( (type_descriptor "ExprList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar26->p3" identifier -> field_identifier))) )) (compound_statement "{\n                if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;\n                for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }\n              }" { (if_statement "if (pOVar26->p2 == pTab->tnum) goto LAB_000f3b16;" if (parenthesized_expression "(pOVar26->p2 == pTab->tnum)" ( (binary_expression "pOVar26->p2 == pTab->tnum" (field_expression "pOVar26->p2" identifier -> field_identifier) == (field_expression "pTab->tnum" identifier -> field_identifier)) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) (for_statement "for (pIVar21 = pTab->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }" for ( (assignment_expression "pIVar21 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ; (binary_expression "pIVar21 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pIVar21 = pIVar21->pNext" identifier = (field_expression "pIVar21->pNext" identifier -> field_identifier)) ) (compound_statement "{\n                  if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;\n                }" { (if_statement "if (pOVar26->p2 == pIVar21->tnum) goto LAB_000f3b16;" if (parenthesized_expression "(pOVar26->p2 == pIVar21->tnum)" ( (binary_expression "pOVar26->p2 == pIVar21->tnum" (field_expression "pOVar26->p2" identifier -> field_identifier) == (field_expression "pIVar21->tnum" identifier -> field_identifier)) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) })) })) }) (else_clause "else if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;" else (if_statement "if ((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))\n            goto LAB_000f3b16;" if (parenthesized_expression "((pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27))" ( (binary_expression "(pOVar26->opcode == 0xa3) && ((VTable *)(pOVar26->p4).i == pVVar27)" (parenthesized_expression "(pOVar26->opcode == 0xa3)" ( (binary_expression "pOVar26->opcode == 0xa3" (field_expression "pOVar26->opcode" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((VTable *)(pOVar26->p4).i == pVVar27)" ( (binary_expression "(VTable *)(pOVar26->p4).i == pVVar27" (cast_expression "(VTable *)(pOVar26->p4).i" ( (type_descriptor "VTable *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar26->p4).i" (parenthesized_expression "(pOVar26->p4)" ( (field_expression "pOVar26->p4" identifier -> field_identifier) )) . field_identifier)) == identifier) ))) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)))) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pVVar47->nOp != iVar41)" ( (binary_expression "pVVar47->nOp != iVar41" (field_expression "pVVar47->nOp" identifier -> field_identifier) != identifier) )) ;) })) }) (else_clause "else {\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }" else (compound_statement "{\nLAB_000f3b16:\n        iVar13 = pParse_00->nTab;\n        pParse_00->nTab = iVar13 + 1;\n        uVar2 = pParse_00->nTempReg;\n        if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }\n        sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);\n        iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        p3 = iVar41;\n        sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);\n        sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);\n        pTVar42 = pTVar48;\n        sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);\n        sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);\n        iVar30 = local_144->nOp;\n        psVar28 = local_144->db;\n        if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }\n        pOVar26->p2 = iVar30;\n        if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }\n        bVar9 = true;\n        uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);\n        uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;\n        local_16c._0_1_ = SUB41(uVar29,0);\n        uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;\n        if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }\n      }" { (labeled_statement "LAB_000f3b16:\n        iVar13 = pParse_00->nTab;" statement_identifier : (expression_statement "iVar13 = pParse_00->nTab;" (assignment_expression "iVar13 = pParse_00->nTab" identifier = (field_expression "pParse_00->nTab" identifier -> field_identifier)) ;)) (expression_statement "pParse_00->nTab = iVar13 + 1;" (assignment_expression "pParse_00->nTab = iVar13 + 1" (field_expression "pParse_00->nTab" identifier -> field_identifier) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = pParse_00->nTempReg;" (assignment_expression "uVar2 = pParse_00->nTempReg" identifier = (field_expression "pParse_00->nTempReg" identifier -> field_identifier)) ;) (if_statement "if (uVar2 == '\0') {\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }\n        else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }" if (parenthesized_expression "(uVar2 == '\0')" ( (binary_expression "uVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar41 = pParse_00->nMem + 1;\n          iVar17 = iVar41;\nLAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);\n          pParse_00->nMem = (int)pTVar48;\n        }" { (expression_statement "iVar41 = pParse_00->nMem + 1;" (assignment_expression "iVar41 = pParse_00->nMem + 1" identifier = (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar17 = iVar41;" (assignment_expression "iVar17 = iVar41" identifier = identifier) ;) (labeled_statement "LAB_000f4ecb:\n          pTVar48 = (Table *)(iVar17 + 1);" statement_identifier : (expression_statement "pTVar48 = (Table *)(iVar17 + 1);" (assignment_expression "pTVar48 = (Table *)(iVar17 + 1)" identifier = (cast_expression "(Table *)(iVar17 + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 1)" ( (binary_expression "iVar17 + 1" identifier + number_literal) )))) ;)) (expression_statement "pParse_00->nMem = (int)pTVar48;" (assignment_expression "pParse_00->nMem = (int)pTVar48" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }" else (compound_statement "{\n          bVar1 = uVar2 - 1;\n          pParse_00->nTempReg = bVar1;\n          iVar41 = pParse_00->aTempReg[bVar1];\n          if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }\n          pParse_00->nTempReg = uVar2 - 2;\n          pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];\n        }" { (expression_statement "bVar1 = uVar2 - 1;" (assignment_expression "bVar1 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "pParse_00->nTempReg = bVar1;" (assignment_expression "pParse_00->nTempReg = bVar1" (field_expression "pParse_00->nTempReg" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar41 = pParse_00->aTempReg[bVar1];" (assignment_expression "iVar41 = pParse_00->aTempReg[bVar1]" identifier = (subscript_expression "pParse_00->aTempReg[bVar1]" (field_expression "pParse_00->aTempReg" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (bVar1 == 0) {\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar17 = pParse_00->nMem;\n            goto LAB_000f4ecb;\n          }" { (expression_statement "iVar17 = pParse_00->nMem;" (assignment_expression "iVar17 = pParse_00->nMem" identifier = (field_expression "pParse_00->nMem" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000f4ecb;" goto statement_identifier ;) })) (expression_statement "pParse_00->nTempReg = uVar2 - 2;" (assignment_expression "pParse_00->nTempReg = uVar2 - 2" (field_expression "pParse_00->nTempReg" identifier -> field_identifier) = (binary_expression "uVar2 - 2" identifier - number_literal)) ;) (expression_statement "pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)];" (assignment_expression "pTVar48 = (Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)]" identifier = (cast_expression "(Table *)pParse_00->aTempReg[(byte)(uVar2 - 2)]" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse_00->aTempReg[(byte)(uVar2 - 2)]" (field_expression "pParse_00->aTempReg" identifier -> field_identifier) [ (call_expression "(byte)(uVar2 - 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar2 - 2)" ( (binary_expression "uVar2 - 2" identifier - number_literal) ))) ]))) ;) }))) (expression_statement "sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x71,iVar13,(int)local_174,(int)pTVar42)" identifier (argument_list "(local_144,0x71,iVar13,(int)local_174,(int)pTVar42)" ( identifier , number_literal , identifier , (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);" (assignment_expression "iVar17 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" identifier (argument_list "(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" ( identifier , number_literal , (field_expression "dest.iSDParm" identifier . field_identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "p3 = iVar41;" (assignment_expression "p3 = iVar41" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41);" (call_expression "sqlite3VdbeAddOp3(local_144,0x66,iVar30,(int)local_174,iVar41)" identifier (argument_list "(local_144,0x66,iVar30,(int)local_174,iVar41)" ( identifier , number_literal , identifier , (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3);" (call_expression "sqlite3VdbeAddOp3(local_144,0x79,iVar13,(int)pTVar48,p3)" identifier (argument_list "(local_144,0x79,iVar13,(int)pTVar48,p3)" ( identifier , number_literal , identifier , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "pTVar42 = pTVar48;" (assignment_expression "pTVar42 = pTVar48" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48);" (call_expression "sqlite3VdbeAddOp3(local_144,0x7a,iVar13,iVar41,(int)pTVar48)" identifier (argument_list "(local_144,0x7a,iVar13,iVar41,(int)pTVar48)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0xb,0,iVar17,(int)pTVar42)" identifier (argument_list "(local_144,0xb,0,iVar17,(int)pTVar42)" ( identifier , number_literal , number_literal , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar30 = local_144->nOp;" (assignment_expression "iVar30 = local_144->nOp" identifier = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) (expression_statement "psVar28 = local_144->db;" (assignment_expression "psVar28 = local_144->db" identifier = (field_expression "local_144->db" identifier -> field_identifier)) ;) (if_statement "if (iVar17 < 0) {\n          iVar17 = iVar30 + -1;\n        }" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar17 = iVar30 + -1;\n        }" { (expression_statement "iVar17 = iVar30 + -1;" (assignment_expression "iVar17 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (psVar28->mallocFailed == '\0') {\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }" if (parenthesized_expression "(psVar28->mallocFailed == '\0')" ( (binary_expression "psVar28->mallocFailed == '\0'" (field_expression "psVar28->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          psVar28 = (sqlite3 *)(iVar17 * 3);\n          pOVar26 = local_144->aOp + iVar17;\n        }" { (expression_statement "psVar28 = (sqlite3 *)(iVar17 * 3);" (assignment_expression "psVar28 = (sqlite3 *)(iVar17 * 3)" identifier = (cast_expression "(sqlite3 *)(iVar17 * 3)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 * 3)" ( (binary_expression "iVar17 * 3" identifier * number_literal) )))) ;) (expression_statement "pOVar26 = local_144->aOp + iVar17;" (assignment_expression "pOVar26 = local_144->aOp + iVar17" identifier = (binary_expression "local_144->aOp + iVar17" (field_expression "local_144->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = iVar30;" (assignment_expression "pOVar26->p2 = iVar30" (field_expression "pOVar26->p2" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar41 != 0) {\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }" if (parenthesized_expression "(iVar41 != 0)" ( (binary_expression "iVar41 != 0" identifier != number_literal) )) (compound_statement "{\n          sqlite3ReleaseTempReg(pParse_00,iVar41);\n          psVar28 = extraout_ECX;\n          iVar30 = extraout_EDX;\n        }" { (expression_statement "sqlite3ReleaseTempReg(pParse_00,iVar41);" (call_expression "sqlite3ReleaseTempReg(pParse_00,iVar41)" identifier (argument_list "(pParse_00,iVar41)" ( identifier , identifier ))) ;) (expression_statement "psVar28 = extraout_ECX;" (assignment_expression "psVar28 = extraout_ECX" identifier = identifier) ;) (expression_statement "iVar30 = extraout_EDX;" (assignment_expression "iVar30 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" identifier = true) ;) (expression_statement "uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0);" (assignment_expression "uVar43 = CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0)" identifier (argument_list "((int3)((uint)iVar30 >> 8),pParse == (Parse *)0x0)" ( (call_expression "(int3)((uint)iVar30 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar30 >> 8)" ( (binary_expression "(uint)iVar30 >> 8" (cast_expression "(uint)iVar30" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43;" (assignment_expression "uVar29 = CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43" identifier = (binary_expression "CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174) & uVar43" (call_expression "CONCAT31((int3)((uint)psVar28 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)psVar28 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)psVar28 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)psVar28 >> 8)" ( (binary_expression "(uint)psVar28 >> 8" (cast_expression "(uint)psVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar29,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar29,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar29,0)" identifier (argument_list "(uVar29,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43;" (assignment_expression "uVar43 = CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43" identifier = (binary_expression "CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0) & uVar43" (call_expression "CONCAT31((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0)" identifier (argument_list "((int3)(uVar29 >> 8),local_174 != (sqlite3 *)0x0)" ( (call_expression "(int3)(uVar29 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar29 >> 8)" ( (binary_expression "uVar29 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (if_statement "if (pTVar48 != (Table *)0x0) {\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }" if (parenthesized_expression "(pTVar48 != (Table *)0x0)" ( (binary_expression "pTVar48 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);\n        }" { (expression_statement "sqlite3ReleaseTempReg(pParse_00,(int)pTVar48);" (call_expression "sqlite3ReleaseTempReg(pParse_00,(int)pTVar48)" identifier (argument_list "(pParse_00,(int)pTVar48)" ( identifier , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) }))) (labeled_statement "LAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }" statement_identifier : (if_statement "if (local_16c._0_1_ != false) {\n        local_140 = (uint)pTab->iPKey;\n      }" if (parenthesized_expression "(local_16c._0_1_ != false)" ( (binary_expression "local_16c._0_1_ != false" (field_expression "local_16c._0_1_" identifier . field_identifier) != false) )) (compound_statement "{\n        local_140 = (uint)pTab->iPKey;\n      }" { (expression_statement "local_140 = (uint)pTab->iPKey;" (assignment_expression "local_140 = (uint)pTab->iPKey" identifier = (cast_expression "(uint)pTab->iPKey" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTab->iPKey" identifier -> field_identifier))) ;) }))) }))) (expression_statement "iVar41 = (int)pTab->nCol;" (assignment_expression "iVar41 = (int)pTab->nCol" identifier = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) ;) (if_statement "if (iVar41 < 1) {\n      iVar30 = 0;\n    }\n    else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }" if (parenthesized_expression "(iVar41 < 1)" ( (binary_expression "iVar41 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar30 = 0;\n    }" { (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }" else (compound_statement "{\n      iVar30 = 0;\n      puVar18 = &pTab->aCol->colFlags;\n      puVar44 = puVar18 + iVar41 * 0x10;\n      do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);\n    }" { (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) (expression_statement "puVar18 = &pTab->aCol->colFlags;" (assignment_expression "puVar18 = &pTab->aCol->colFlags" identifier = (pointer_expression "&pTab->aCol->colFlags" & (field_expression "pTab->aCol->colFlags" (field_expression "pTab->aCol" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "puVar44 = puVar18 + iVar41 * 0x10;" (assignment_expression "puVar44 = puVar18 + iVar41 * 0x10" identifier = (binary_expression "puVar18 + iVar41 * 0x10" identifier + (binary_expression "iVar41 * 0x10" identifier * number_literal))) ;) (do_statement "do {\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (puVar44 != puVar18);" do (compound_statement "{\n        bVar1 = *puVar18;\n        puVar18 = puVar18 + 0x10;\n        iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);\n      }" { (expression_statement "bVar1 = *puVar18;" (assignment_expression "bVar1 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + 0x10;" (assignment_expression "puVar18 = puVar18 + 0x10" identifier = (binary_expression "puVar18 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U);" (assignment_expression "iVar30 = iVar30 + ((int)(uint)bVar1 >> 1 & 1U)" identifier = (binary_expression "iVar30 + ((int)(uint)bVar1 >> 1 & 1U)" identifier + (parenthesized_expression "((int)(uint)bVar1 >> 1 & 1U)" ( (binary_expression "(int)(uint)bVar1 >> 1 & 1U" (binary_expression "(int)(uint)bVar1 >> 1" (cast_expression "(int)(uint)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) & number_literal) )))) ;) }) while (parenthesized_expression "(puVar44 != puVar18)" ( (binary_expression "puVar44 != puVar18" identifier != identifier) )) ;) }))) (if_statement "if ((char)uVar43 == '\0') {\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((char)uVar43 == '\0')" ( (binary_expression "(char)uVar43 == '\0'" (cast_expression "(char)uVar43" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }" { (if_statement "if ((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)) goto LAB_000f3caf;" if (parenthesized_expression "((pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174))" ( (binary_expression "(pParse == (Parse *)0x0) || ((sqlite3 *)pParse->zErrMsg == local_174)" (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((sqlite3 *)pParse->zErrMsg == local_174)" ( (binary_expression "(sqlite3 *)pParse->zErrMsg == local_174" (cast_expression "(sqlite3 *)pParse->zErrMsg" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier)) == identifier) ))) )) (goto_statement "goto LAB_000f3caf;" goto statement_identifier ;)) (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg)" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0x6a7b3),local_174,(sqlite3 *)pParse->zErrMsg)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x6a7b3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x6a7b3)" ( (binary_expression "unaff_EDI + 0x6a7b3" identifier + number_literal) ))) , identifier , (cast_expression "(sqlite3 *)pParse->zErrMsg" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier)) ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (if_statement "if ((sqlite3 *)(iVar41 - iVar30) != local_174) {\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((sqlite3 *)(iVar41 - iVar30) != local_174)" ( (binary_expression "(sqlite3 *)(iVar41 - iVar30) != local_174" (cast_expression "(sqlite3 *)(iVar41 - iVar30)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 - iVar30)" ( (binary_expression "iVar41 - iVar30" identifier - identifier) ))) != identifier) )) (compound_statement "{\n      sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);\n      local_17c = (AutoincInfo *)0x0;\n      goto LAB_000f3673;\n    }" { (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174)" identifier (argument_list "(pParse_00,(char *)(unaff_EDI + 0x77d19),pList,0,(sqlite3 *)(iVar41 - iVar30),\n                      local_174)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0x77d19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77d19)" ( (binary_expression "unaff_EDI + 0x77d19" identifier + number_literal) ))) , identifier , number_literal , (cast_expression "(sqlite3 *)(iVar41 - iVar30)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 - iVar30)" ( (binary_expression "iVar41 - iVar30" identifier - identifier) ))) , identifier ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f3caf:\n    local_16c = (Table *)0x0;" statement_identifier : (expression_statement "local_16c = (Table *)0x0;" (assignment_expression "local_16c = (Table *)0x0" identifier = (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if ((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)) {\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }" if (parenthesized_expression "((((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0))" ( (binary_expression "(((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&\n       (pParse_00->pTriggerTab == (Table *)0x0)" (parenthesized_expression "(((db->flags & 0x80) != 0) && (pParse_00->nested == '\0'))" ( (binary_expression "((db->flags & 0x80) != 0) && (pParse_00->nested == '\0')" (parenthesized_expression "((db->flags & 0x80) != 0)" ( (binary_expression "(db->flags & 0x80) != 0" (parenthesized_expression "(db->flags & 0x80)" ( (binary_expression "db->flags & 0x80" (field_expression "db->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pParse_00->nested == '\0')" ( (binary_expression "pParse_00->nested == '\0'" (field_expression "pParse_00->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(pParse_00->pTriggerTab == (Table *)0x0)" ( (binary_expression "pParse_00->pTriggerTab == (Table *)0x0" (field_expression "pParse_00->pTriggerTab" identifier -> field_identifier) == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      local_16c = (Table *)(pParse_00->nMem + 1);\n      pParse_00->nMem = (int)local_16c;\n      sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);\n    }" { (expression_statement "local_16c = (Table *)(pParse_00->nMem + 1);" (assignment_expression "local_16c = (Table *)(pParse_00->nMem + 1)" identifier = (cast_expression "(Table *)(pParse_00->nMem + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse_00->nMem + 1)" ( (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pParse_00->nMem = (int)local_16c;" (assignment_expression "pParse_00->nMem = (int)local_16c" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x46,0,(int)local_16c,(int)pTVar42)" identifier (argument_list "(local_144,0x46,0,(int)local_16c,(int)pTVar42)" ( identifier , number_literal , number_literal , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "local_168 = (AutoincInfo *)0x0;" (assignment_expression "local_168 = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pSVar5 == (Select *)0x0) {\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }" if (parenthesized_expression "(pSVar5 == (Select *)0x0)" ( (binary_expression "pSVar5 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar41 = 0;\n      if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }\n      if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;\n      pIVar21 = pTab->pIndex;\n      if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }\n    }" { (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (if_statement "if (pTab->nModuleArg == 0) {\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);\n      }" { (expression_statement "iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur);" (assignment_expression "iVar41 = sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur)" identifier = (call_expression "sqlite3OpenTableAndIndices\n                           (pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur)" identifier (argument_list "(pParse_00,pTab,0x6e,'\0',-1,(u8 *)0x0,&iDataCur,&iIdxCur)" ( identifier , identifier , number_literal , (char_literal "'\0'" ' escape_sequence ') , number_literal , (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&iDataCur" & identifier) , (pointer_expression "&iIdxCur" & identifier) )))) ;) })) (if_statement "if ((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)) goto LAB_000f366b;" if (parenthesized_expression "((db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0))" ( (binary_expression "(db->mallocFailed != '\0') ||\n         (local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)" (parenthesized_expression "(db->mallocFailed != '\0')" ( (binary_expression "db->mallocFailed != '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0)" ( (comma_expression "local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74)),\n         local_168 == (AutoincInfo *)0x0" (assignment_expression "local_168 = (AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74))" identifier = (cast_expression "(AutoincInfo *)\n                      dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74))" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dbMallocRawFinish(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74))" identifier (argument_list "(db,CONCAT44(in_stack_fffffe78,in_stack_fffffe74))" ( identifier , (call_expression "CONCAT44(in_stack_fffffe78,in_stack_fffffe74)" identifier (argument_list "(in_stack_fffffe78,in_stack_fffffe74)" ( identifier , identifier ))) ))))) , (binary_expression "local_168 == (AutoincInfo *)0x0" identifier == (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "pIVar21 = pTab->pIndex;" (assignment_expression "pIVar21 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ;) (if_statement "if (0 < iVar41) {\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }" if (parenthesized_expression "(0 < iVar41)" ( (binary_expression "0 < iVar41" number_literal < identifier) )) (compound_statement "{\n        iVar30 = pParse_00->nMem;\n        pAVar36 = local_168;\n        do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);\n      }" { (expression_statement "iVar30 = pParse_00->nMem;" (assignment_expression "iVar30 = pParse_00->nMem" identifier = (field_expression "pParse_00->nMem" identifier -> field_identifier)) ;) (expression_statement "pAVar36 = local_168;" (assignment_expression "pAVar36 = local_168" identifier = identifier) ;) (do_statement "do {\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        } while ((Table **)(&local_168->pNext + iVar41) != ppTVar37);" do (compound_statement "{\n          pAVar22 = (AutoincInfo *)(iVar30 + 1);\n          ppTVar37 = &pAVar36->pTab;\n          pParse_00->nMem = (int)pAVar22;\n          pAVar36->pNext = pAVar22;\n          iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;\n          pParse_00->nMem = iVar30;\n          pIVar21 = pIVar21->pNext;\n          pAVar36 = (AutoincInfo *)ppTVar37;\n        }" { (expression_statement "pAVar22 = (AutoincInfo *)(iVar30 + 1);" (assignment_expression "pAVar22 = (AutoincInfo *)(iVar30 + 1)" identifier = (cast_expression "(AutoincInfo *)(iVar30 + 1)" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 1)" ( (binary_expression "iVar30 + 1" identifier + number_literal) )))) ;) (expression_statement "ppTVar37 = &pAVar36->pTab;" (assignment_expression "ppTVar37 = &pAVar36->pTab" identifier = (pointer_expression "&pAVar36->pTab" & (field_expression "pAVar36->pTab" identifier -> field_identifier))) ;) (expression_statement "pParse_00->nMem = (int)pAVar22;" (assignment_expression "pParse_00->nMem = (int)pAVar22" (field_expression "pParse_00->nMem" identifier -> field_identifier) = (cast_expression "(int)pAVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pAVar36->pNext = pAVar22;" (assignment_expression "pAVar36->pNext = pAVar22" (field_expression "pAVar36->pNext" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn;" (assignment_expression "iVar30 = (int)&pAVar22->pNext + (uint)pIVar21->nColumn" identifier = (binary_expression "(int)&pAVar22->pNext + (uint)pIVar21->nColumn" (cast_expression "(int)&pAVar22->pNext" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar22->pNext" & (field_expression "pAVar22->pNext" identifier -> field_identifier))) + (cast_expression "(uint)pIVar21->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar21->nColumn" identifier -> field_identifier)))) ;) (expression_statement "pParse_00->nMem = iVar30;" (assignment_expression "pParse_00->nMem = iVar30" (field_expression "pParse_00->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar21 = pIVar21->pNext;" (assignment_expression "pIVar21 = pIVar21->pNext" identifier = (field_expression "pIVar21->pNext" identifier -> field_identifier)) ;) (expression_statement "pAVar36 = (AutoincInfo *)ppTVar37;" (assignment_expression "pAVar36 = (AutoincInfo *)ppTVar37" identifier = (cast_expression "(AutoincInfo *)ppTVar37" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((Table **)(&local_168->pNext + iVar41) != ppTVar37)" ( (binary_expression "(Table **)(&local_168->pNext + iVar41) != ppTVar37" (cast_expression "(Table **)(&local_168->pNext + iVar41)" ( (type_descriptor "Table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&local_168->pNext + iVar41)" ( (binary_expression "&local_168->pNext + iVar41" (pointer_expression "&local_168->pNext" & (field_expression "local_168->pNext" identifier -> field_identifier)) + identifier) ))) != identifier) )) ;) })) })) (expression_statement "uVar10._4_4_ = sNC.pSrcList;" (assignment_expression "uVar10._4_4_ = sNC.pSrcList" (field_expression "uVar10._4_4_" identifier . field_identifier) = (field_expression "sNC.pSrcList" identifier . field_identifier)) ;) (expression_statement "uVar10._0_4_ = sNC.pParse;" (assignment_expression "uVar10._0_4_ = sNC.pParse" (field_expression "uVar10._0_4_" identifier . field_identifier) = (field_expression "sNC.pParse" identifier . field_identifier)) ;) (if_statement "if (pSelect == (Select *)0x0) {\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(pSelect == (Select *)0x0)" ( (binary_expression "pSelect == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }\n      pTVar48 = (Table *)(pParse_00->nLabel + -1);\n      pParse_00->nLabel = (int)pTVar48;\n      if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }\n      if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }\n      if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }\n      sqlite3VdbeResolveLabel(local_144,(int)pTVar48);\n      if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }\n      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }\n      local_17c = local_168;\n      if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }\n      goto LAB_000f3673;\n    }" { (labeled_statement "LAB_000f3d98:\n      if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" statement_identifier : (if_statement "if (bVar9) {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }\n      else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n        iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);\n        local_160 = local_144->nOp;\n      }" { (expression_statement "iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42);" (assignment_expression "iVar41 = sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,0x24,iVar13,0,(int)pTVar42)" identifier (argument_list "(local_144,0x24,iVar13,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_160 = local_144->nOp;" (assignment_expression "local_160 = local_144->nOp" identifier = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) }) (else_clause "else if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" else (if_statement "if (local_158 == (Table *)0x0) {\n        local_160 = 0;\n        iVar41 = 0;\n      }\n      else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" if (parenthesized_expression "(local_158 == (Table *)0x0)" ( (binary_expression "local_158 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_160 = 0;\n        iVar41 = 0;\n      }" { (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" else (compound_statement "{\n        iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);\n        local_160 = iVar41;\n      }" { (expression_statement "iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42);" (assignment_expression "iVar41 = sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" identifier (argument_list "(local_144,0xe,dest.iSDParm,0,(int)pTVar42)" ( identifier , number_literal , (field_expression "dest.iSDParm" identifier . field_identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_160 = iVar41;" (assignment_expression "local_160 = iVar41" identifier = identifier) ;) })))))) (expression_statement "pTVar48 = (Table *)(pParse_00->nLabel + -1);" (assignment_expression "pTVar48 = (Table *)(pParse_00->nLabel + -1)" identifier = (cast_expression "(Table *)(pParse_00->nLabel + -1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse_00->nLabel + -1)" ( (binary_expression "pParse_00->nLabel + -1" (field_expression "pParse_00->nLabel" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pParse_00->nLabel = (int)pTVar48;" (assignment_expression "pParse_00->nLabel = (int)pTVar48" (field_expression "pParse_00->nLabel" identifier -> field_identifier) = (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((byte)tmask & 1) != 0) {\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }" if (parenthesized_expression "(((byte)tmask & 1) != 0)" ( (binary_expression "((byte)tmask & 1) != 0" (parenthesized_expression "((byte)tmask & 1)" ( (binary_expression "(byte)tmask & 1" (cast_expression "(byte)tmask" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);\n        if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }\n        iVar30 = (int)pTab->nCol;\n        if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }\n        if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);\n        iVar30 = pTab->nCol + 1;\n        if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }\n      }" { (expression_statement "pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1);" (assignment_expression "pTVar25 = (Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1)" identifier = (cast_expression "(Table *)sqlite3GetTempRange(pParse_00,pTab->nCol + 1)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3GetTempRange(pParse_00,pTab->nCol + 1)" identifier (argument_list "(pParse_00,pTab->nCol + 1)" ( identifier , (binary_expression "pTab->nCol + 1" (field_expression "pTab->nCol" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if ((int)local_140 < 0) {\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n        }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42)" identifier (argument_list "(local_144,0x46,-1,(int)pTVar25,(int)pTVar42)" ( identifier , number_literal , number_literal , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }" else (compound_statement "{\n          if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }\n          iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);\n          sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);\n          if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }\n          pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n          if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }\n          pOVar26->p2 = local_144->nOp;\n          sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);\n        }" { (if_statement "if (bVar9) {\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }\n          else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n            pTVar42 = pTVar25;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);\n          }" { (expression_statement "pTVar42 = pTVar25;" (assignment_expression "pTVar42 = pTVar25" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25);" (call_expression "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)pTVar25)" identifier (argument_list "(local_144,0x5a,iVar13,local_140,(int)pTVar25)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }" else (compound_statement "{\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);\n          }" { (expression_statement "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25);" (call_expression "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25)" identifier (argument_list "(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)pTVar25)" ( identifier , (cast_expression "(Expr *)(&local_148->pPrev)[local_140 * 5]" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&local_148->pPrev)[local_140 * 5]" (parenthesized_expression "(&local_148->pPrev)" ( (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier)) )) [ (binary_expression "local_140 * 5" identifier * number_literal) ])) , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42);" (assignment_expression "iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,0x33,(int)pTVar25,0,(int)pTVar42)" identifier (argument_list "(local_144,0x33,(int)pTVar25,0,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x46,-1,(int)pTVar25,(int)pTVar42)" identifier (argument_list "(local_144,0x46,-1,(int)pTVar25,(int)pTVar42)" ( identifier , number_literal , number_literal , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (iVar30 < 0) {\n            iVar30 = local_144->nOp + -1;\n          }" if (parenthesized_expression "(iVar30 < 0)" ( (binary_expression "iVar30 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar30 = local_144->nOp + -1;\n          }" { (expression_statement "iVar30 = local_144->nOp + -1;" (assignment_expression "iVar30 = local_144->nOp + -1" identifier = (binary_expression "local_144->nOp + -1" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (local_144->db->mallocFailed == '\0') {\n            pOVar26 = local_144->aOp + iVar30;\n          }" if (parenthesized_expression "(local_144->db->mallocFailed == '\0')" ( (binary_expression "local_144->db->mallocFailed == '\0'" (field_expression "local_144->db->mallocFailed" (field_expression "local_144->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pOVar26 = local_144->aOp + iVar30;\n          }" { (expression_statement "pOVar26 = local_144->aOp + iVar30;" (assignment_expression "pOVar26 = local_144->aOp + iVar30" identifier = (binary_expression "local_144->aOp + iVar30" (field_expression "local_144->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = local_144->nOp;" (assignment_expression "pOVar26->p2 = local_144->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0xf,(int)pTVar25,0,(int)pTVar42)" identifier (argument_list "(local_144,0xf,(int)pTVar25,0,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "iVar30 = (int)pTab->nCol;" (assignment_expression "iVar30 = (int)pTab->nCol" identifier = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) ;) (if_statement "if (0 < pTab->nCol) {\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }" if (parenthesized_expression "(0 < pTab->nCol)" ( (binary_expression "0 < pTab->nCol" number_literal < (field_expression "pTab->nCol" identifier -> field_identifier)) )) (compound_statement "{\n          pcVar51 = (char *)0x0;\n          bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);\n        }" { (expression_statement "pcVar51 = (char *)0x0;" (assignment_expression "pcVar51 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0);" (assignment_expression "bVar33 = (bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0)" identifier = (cast_expression "(bool)((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((bVar9 ^ 1U) & local_148 == (Vdbe *)0x0)" ( (binary_expression "(bVar9 ^ 1U) & local_148 == (Vdbe *)0x0" (parenthesized_expression "(bVar9 ^ 1U)" ( (binary_expression "bVar9 ^ 1U" identifier ^ number_literal) )) & (binary_expression "local_148 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) (expression_statement "pVVar47 = (Vdbe *)0x0;" (assignment_expression "pVVar47 = (Vdbe *)0x0" identifier = (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          } while ((int)pVVar47 < iVar30);" do (compound_statement "{\n            if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }\n            pcVar51 = pcVar51 + (pParse == (Parse *)0x0);\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n            iVar30 = (int)pTab->nCol;\n          }" { (if_statement "if (pParse == (Parse *)0x0) {\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }\n            else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }" if (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (bVar33) goto LAB_000f4c2c;\nLAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));\n              if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }\n            }" { (if_statement "if (bVar33) goto LAB_000f4c2c;" if (parenthesized_expression "(bVar33)" ( identifier )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (labeled_statement "LAB_000f4c96:\n              target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));" statement_identifier : (expression_statement "target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1));" (assignment_expression "target = (Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1))" identifier = (cast_expression "(Table *)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1))" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1))" ( (binary_expression "(int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)" (cast_expression "(int)&pTVar25->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar25->zName" & (field_expression "pTVar25->zName" identifier -> field_identifier))) + (cast_expression "(int)((int)&pVVar47->db + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pVVar47->db + 1)" ( (binary_expression "(int)&pVVar47->db + 1" (cast_expression "(int)&pVVar47->db" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVVar47->db" & (field_expression "pVVar47->db" identifier -> field_identifier))) + number_literal) )))) )))) ;)) (if_statement "if (bVar9) {\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }\n              else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n                sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);\n                pTVar42 = target;\n              }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target);" (call_expression "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)target)" identifier (argument_list "(local_144,0x5a,iVar13,(int)pcVar51,(int)target)" ( identifier , number_literal , identifier , (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)target" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "pTVar42 = target;" (assignment_expression "pTVar42 = target" identifier = identifier) ;) }) (else_clause "else {\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }" else (compound_statement "{\n                pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];\n                p = pParse_00->pVdbe;\n                sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);\n                iVar30 = pParse_00->nMem + 1;\n                pParse_00->nMem = iVar30;\n                sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);\n                uVar2 = *(u8 *)&pVVar8->db;\n                pVVar8->nCursor = iVar30;\n                *(u8 *)&pVVar8->db = 0xa4;\n                *(u8 *)&pVVar8->rc = uVar2;\n                pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);\n              }" { (expression_statement "pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5];" (assignment_expression "pVVar8 = (&local_148->pPrev)[(int)pcVar51 * 5]" identifier = (subscript_expression "(&local_148->pPrev)[(int)pcVar51 * 5]" (parenthesized_expression "(&local_148->pPrev)" ( (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier)) )) [ (binary_expression "(int)pcVar51 * 5" (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ])) ;) (expression_statement "p = pParse_00->pVdbe;" (assignment_expression "p = pParse_00->pVdbe" identifier = (field_expression "pParse_00->pVdbe" identifier -> field_identifier)) ;) (expression_statement "sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target);" (call_expression "sqlite3ExprCode(pParse_00,(Expr *)pVVar8,(int)target)" identifier (argument_list "(pParse_00,(Expr *)pVVar8,(int)target)" ( identifier , (cast_expression "(Expr *)pVVar8" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)target" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar30 = pParse_00->nMem + 1;" (assignment_expression "iVar30 = pParse_00->nMem + 1" identifier = (binary_expression "pParse_00->nMem + 1" (field_expression "pParse_00->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse_00->nMem = iVar30;" (assignment_expression "pParse_00->nMem = iVar30" (field_expression "pParse_00->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(p,0x4e,(int)target,iVar30,(int)pTVar42)" identifier (argument_list "(p,0x4e,(int)target,iVar30,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)target" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar2 = *(u8 *)&pVVar8->db;" (assignment_expression "uVar2 = *(u8 *)&pVVar8->db" identifier = (pointer_expression "*(u8 *)&pVVar8->db" * (cast_expression "(u8 *)&pVVar8->db" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pVVar8->db" & (field_expression "pVVar8->db" identifier -> field_identifier))))) ;) (expression_statement "pVVar8->nCursor = iVar30;" (assignment_expression "pVVar8->nCursor = iVar30" (field_expression "pVVar8->nCursor" identifier -> field_identifier) = identifier) ;) (expression_statement "*(u8 *)&pVVar8->db = 0xa4;" (assignment_expression "*(u8 *)&pVVar8->db = 0xa4" (pointer_expression "*(u8 *)&pVVar8->db" * (cast_expression "(u8 *)&pVVar8->db" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pVVar8->db" & (field_expression "pVVar8->db" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(u8 *)&pVVar8->rc = uVar2;" (assignment_expression "*(u8 *)&pVVar8->rc = uVar2" (pointer_expression "*(u8 *)&pVVar8->rc" * (cast_expression "(u8 *)&pVVar8->rc" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pVVar8->rc" & (field_expression "pVVar8->rc" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff);" (assignment_expression "pVVar8->pPrev = (Vdbe *)((uint)pVVar8->pPrev & 0xffffefff)" (field_expression "pVVar8->pPrev" identifier -> field_identifier) = (cast_expression "(Vdbe *)((uint)pVVar8->pPrev & 0xffffefff)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pVVar8->pPrev & 0xffffefff)" ( (binary_expression "(uint)pVVar8->pPrev & 0xffffefff" (cast_expression "(uint)pVVar8->pPrev" ( (type_descriptor "uint" type_identifier) ) (field_expression "pVVar8->pPrev" identifier -> field_identifier)) & number_literal) )))) ;) }))) }) (else_clause "else {\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }" else (compound_statement "{\n              if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));\n            }" { (if_statement "if ((int)pParse->zErrMsg < 1) {\n                pcVar51 = (char *)0x0;\n              }\n              else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }" if (parenthesized_expression "((int)pParse->zErrMsg < 1)" ( (binary_expression "(int)pParse->zErrMsg < 1" (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n                pcVar51 = (char *)0x0;\n              }" { (expression_statement "pcVar51 = (char *)0x0;" (assignment_expression "pcVar51 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }" else (compound_statement "{\n                pcVar51 = (char *)0x0;\n                pVVar8 = pParse->db->pVdbe;\n                while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }\n                if (!bVar33) goto LAB_000f4c96;\n              }" { (expression_statement "pcVar51 = (char *)0x0;" (assignment_expression "pcVar51 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pVVar8 = pParse->db->pVdbe;" (assignment_expression "pVVar8 = pParse->db->pVdbe" identifier = (field_expression "pParse->db->pVdbe" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier)) ;) (while_statement "while (pVVar47 != pVVar8) {\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }" while (parenthesized_expression "(pVVar47 != pVVar8)" ( (binary_expression "pVVar47 != pVVar8" identifier != identifier) )) (compound_statement "{\n                  pcVar51 = pcVar51 + 1;\n                  if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;\n                  pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                }" { (expression_statement "pcVar51 = pcVar51 + 1;" (assignment_expression "pcVar51 = pcVar51 + 1" identifier = (binary_expression "pcVar51 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar51 == pParse->zErrMsg) goto LAB_000f4c2c;" if (parenthesized_expression "(pcVar51 == pParse->zErrMsg)" ( (binary_expression "pcVar51 == pParse->zErrMsg" identifier == (field_expression "pParse->zErrMsg" identifier -> field_identifier)) )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (expression_statement "pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];" (assignment_expression "pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" identifier = (cast_expression "(Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" (field_expression "pParse->db->aLimit" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) [ (binary_expression "(int)pcVar51 * 2 + -0x19" (binary_expression "(int)pcVar51 * 2" (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) ;) })) (if_statement "if (!bVar33) goto LAB_000f4c96;" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (goto_statement "goto LAB_000f4c96;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000f4c2c:\n              sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));" statement_identifier : (expression_statement "sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)));" (call_expression "sqlite3ExprCode(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)))" identifier (argument_list "(pParse_00,pTab->aCol[(int)pVVar47].pDflt,\n                              (int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)))" ( identifier , (field_expression "pTab->aCol[(int)pVVar47].pDflt" (subscript_expression "pTab->aCol[(int)pVVar47]" (field_expression "pTab->aCol" identifier -> field_identifier) [ (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) , (cast_expression "(int)((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pTVar25->zName + (int)((int)&pVVar47->db + 1))" ( (binary_expression "(int)&pTVar25->zName + (int)((int)&pVVar47->db + 1)" (cast_expression "(int)&pTVar25->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar25->zName" & (field_expression "pTVar25->zName" identifier -> field_identifier))) + (cast_expression "(int)((int)&pVVar47->db + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pVVar47->db + 1)" ( (binary_expression "(int)&pVVar47->db + 1" (cast_expression "(int)&pVVar47->db" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVVar47->db" & (field_expression "pVVar47->db" identifier -> field_identifier))) + number_literal) )))) ))) ))) ;)) }))) (expression_statement "pcVar51 = pcVar51 + (pParse == (Parse *)0x0);" (assignment_expression "pcVar51 = pcVar51 + (pParse == (Parse *)0x0)" identifier = (binary_expression "pcVar51 + (pParse == (Parse *)0x0)" identifier + (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);" (assignment_expression "pVVar47 = (Vdbe *)((int)&pVVar47->db + 1)" identifier = (cast_expression "(Vdbe *)((int)&pVVar47->db + 1)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVVar47->db + 1)" ( (binary_expression "(int)&pVVar47->db + 1" (cast_expression "(int)&pVVar47->db" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVVar47->db" & (field_expression "pVVar47->db" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar30 = (int)pTab->nCol;" (assignment_expression "iVar30 = (int)pTab->nCol" identifier = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) ;) }) while (parenthesized_expression "((int)pVVar47 < iVar30)" ( (binary_expression "(int)pVVar47 < iVar30" (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (if_statement "if (pSVar5 == (Select *)0x0) {\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }" if (parenthesized_expression "(pSVar5 == (Select *)0x0)" ( (binary_expression "pSVar5 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));\n          iVar30 = (int)pTab->nCol;\n        }" { (expression_statement "sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1));" (call_expression "sqlite3TableAffinity(local_144,pTab,(int)((int)&pTVar25->zName + 1))" identifier (argument_list "(local_144,pTab,(int)((int)&pTVar25->zName + 1))" ( identifier , identifier , (cast_expression "(int)((int)&pTVar25->zName + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pTVar25->zName + 1)" ( (binary_expression "(int)&pTVar25->zName + 1" (cast_expression "(int)&pTVar25->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar25->zName" & (field_expression "pTVar25->zName" identifier -> field_identifier))) + number_literal) ))) ))) ;) (expression_statement "iVar30 = (int)pTab->nCol;" (assignment_expression "iVar30 = (int)pTab->nCol" identifier = (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) ;) })) (expression_statement "pTVar42 = pTVar48;" (assignment_expression "pTVar42 = pTVar48" identifier = identifier) ;) (expression_statement "sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48);" (call_expression "sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48)" identifier (argument_list "(pParse_00,pTrigger,0x74,(ExprList *)0x0,1,pTab,\n                   (int)((int)pTVar25 + (-1 - iVar30)),(int)pTabList,(int)pTVar48)" ( identifier , identifier , number_literal , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , identifier , (cast_expression "(int)((int)pTVar25 + (-1 - iVar30))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pTVar25 + (-1 - iVar30))" ( (binary_expression "(int)pTVar25 + (-1 - iVar30)" (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - iVar30)" ( (binary_expression "-1 - iVar30" number_literal - identifier) ))) ))) , (cast_expression "(int)pTabList" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar30 = pTab->nCol + 1;" (assignment_expression "iVar30 = pTab->nCol + 1" identifier = (binary_expression "pTab->nCol + 1" (field_expression "pTab->nCol" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (iVar30 == 1) {\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }\n        else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }" if (parenthesized_expression "(iVar30 == 1)" ( (binary_expression "iVar30 == 1" identifier == number_literal) )) (compound_statement "{\n          sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);\n        }" { (expression_statement "sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg);" (call_expression "sqlite3ReleaseTempRange(pParse_00,(int)pTVar25,nReg)" identifier (argument_list "(pParse_00,(int)pTVar25,nReg)" ( identifier , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }) (else_clause "else if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }" else (if_statement "if (pParse_00->nRangeReg < iVar30) {\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }" if (parenthesized_expression "(pParse_00->nRangeReg < iVar30)" ( (binary_expression "pParse_00->nRangeReg < iVar30" (field_expression "pParse_00->nRangeReg" identifier -> field_identifier) < identifier) )) (compound_statement "{\n          pParse_00->nRangeReg = iVar30;\n          pParse_00->iRangeReg = (int)pTVar25;\n        }" { (expression_statement "pParse_00->nRangeReg = iVar30;" (assignment_expression "pParse_00->nRangeReg = iVar30" (field_expression "pParse_00->nRangeReg" identifier -> field_identifier) = identifier) ;) (expression_statement "pParse_00->iRangeReg = (int)pTVar25;" (assignment_expression "pParse_00->iRangeReg = (int)pTVar25" (field_expression "pParse_00->iRangeReg" identifier -> field_identifier) = (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })))) })) (if_statement "if (pSVar5 == (Select *)0x0) {\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }" if (parenthesized_expression "(pSVar5 == (Select *)0x0)" ( (binary_expression "pSVar5 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }\n        if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }\n        if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }\n        if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }\n        if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }\n      }" { (if_statement "if (pTab->nModuleArg != 0) {\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }" if (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);\n        }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x49,0,(int)pTVar20,(int)pTVar42)" identifier (argument_list "(local_144,0x49,0,(int)pTVar20,(int)pTVar42)" ( identifier , number_literal , number_literal , (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (if_statement "if ((int)local_140 < 0) {\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);\n          if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }\n        }" { (expression_statement "pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg);" (assignment_expression "pVVar47 = (Vdbe *)(uVar14 | pTab->nModuleArg)" identifier = (cast_expression "(Vdbe *)(uVar14 | pTab->nModuleArg)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 | pTab->nModuleArg)" ( (binary_expression "uVar14 | pTab->nModuleArg" identifier | (field_expression "pTab->nModuleArg" identifier -> field_identifier)) )))) ;) (if_statement "if (pVVar47 == (Vdbe *)0x0) {\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }" if (parenthesized_expression "(pVVar47 == (Vdbe *)0x0)" ( (binary_expression "pVVar47 == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f4a81:\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            local_138 = 1;\n          }" { (labeled_statement "LAB_000f4a81:\n            pTVar42 = local_118;" statement_identifier : (expression_statement "pTVar42 = local_118;" (assignment_expression "pTVar42 = local_118" identifier = identifier) ;)) (expression_statement "sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);" (call_expression "sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118)" identifier (argument_list "(local_144,0x79,iDataCur,(int)local_12c,(int)local_118)" ( identifier , number_literal , identifier , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)local_118" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_138 = 1;" (assignment_expression "local_138 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }" else (compound_statement "{\n            sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);\n            local_138 = 0;\n          }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x49,0,(int)local_12c,(int)pTVar42)" identifier (argument_list "(local_144,0x49,0,(int)local_12c,(int)pTVar42)" ( identifier , number_literal , number_literal , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }" else (compound_statement "{\n          if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }\n          if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }\n          sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);\n          local_138 = 0;\n          pVVar47 = local_144;\n        }" { (if_statement "if (bVar9) {\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }\n          else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n            pTVar42 = local_12c;\n            sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);\n          }" { (expression_statement "pTVar42 = local_12c;" (assignment_expression "pTVar42 = local_12c" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c);" (call_expression "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,local_140,(int)local_12c)" identifier (argument_list "(local_144,0x5a,iVar13,local_140,(int)local_12c)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }" else (if_statement "if (local_158 == (Table *)0x0) {\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }" if (parenthesized_expression "(local_158 == (Table *)0x0)" ( (binary_expression "local_158 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;\n            sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);\n          }" { (if_statement "if ((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)) goto LAB_000f4a81;" if (parenthesized_expression "((*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0))" ( (binary_expression "(*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n') &&\n               (pVVar47 = local_148, pTab->nModuleArg == 0)" (parenthesized_expression "(*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n')" ( (binary_expression "*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db == 'n'" (pointer_expression "*(u8 *)&(&local_148->pPrev)[local_140 * 5]->db" * (cast_expression "(u8 *)&(&local_148->pPrev)[local_140 * 5]->db" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(&local_148->pPrev)[local_140 * 5]->db" & (field_expression "(&local_148->pPrev)[local_140 * 5]->db" (subscript_expression "(&local_148->pPrev)[local_140 * 5]" (parenthesized_expression "(&local_148->pPrev)" ( (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier)) )) [ (binary_expression "local_140 * 5" identifier * number_literal) ]) -> field_identifier)))) == (char_literal "'n'" ' character ')) )) && (parenthesized_expression "(pVVar47 = local_148, pTab->nModuleArg == 0)" ( (comma_expression "pVVar47 = local_148, pTab->nModuleArg == 0" (assignment_expression "pVVar47 = local_148" identifier = identifier) , (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal)) ))) )) (goto_statement "goto LAB_000f4a81;" goto statement_identifier ;)) (expression_statement "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c);" (call_expression "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c)" identifier (argument_list "(pParse_00,(Expr *)(&local_148->pPrev)[local_140 * 5],(int)local_12c)" ( identifier , (cast_expression "(Expr *)(&local_148->pPrev)[local_140 * 5]" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&local_148->pPrev)[local_140 * 5]" (parenthesized_expression "(&local_148->pPrev)" ( (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier)) )) [ (binary_expression "local_140 * 5" identifier * number_literal) ])) , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }" else (compound_statement "{\n            sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);\n          }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42)" identifier (argument_list "(local_144,0x4e,(int)(local_170 + local_140),(int)local_12c,\n                              (int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)(local_170 + local_140)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_170 + local_140)" ( (binary_expression "local_170 + local_140" identifier + identifier) ))) , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))))) (if_statement "if (pTab->nModuleArg == 0) {\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }\n          else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);\n            pTVar42 = local_118;\n            sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);\n            if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }\n            pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n            if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }\n            pOVar26->p2 = local_144->nOp;\n          }" { (expression_statement "iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42);" (assignment_expression "iVar30 = sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,0x33,(int)local_12c,0,(int)pTVar42)" identifier (argument_list "(local_144,0x33,(int)local_12c,0,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pTVar42 = local_118;" (assignment_expression "pTVar42 = local_118" identifier = identifier) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118);" (call_expression "sqlite3VdbeAddOp3(local_144,0x79,iDataCur,(int)local_12c,(int)local_118)" identifier (argument_list "(local_144,0x79,iDataCur,(int)local_12c,(int)local_118)" ( identifier , number_literal , identifier , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)local_118" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (iVar30 < 0) {\n              iVar30 = local_144->nOp + -1;\n            }" if (parenthesized_expression "(iVar30 < 0)" ( (binary_expression "iVar30 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar30 = local_144->nOp + -1;\n            }" { (expression_statement "iVar30 = local_144->nOp + -1;" (assignment_expression "iVar30 = local_144->nOp + -1" identifier = (binary_expression "local_144->nOp + -1" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (local_144->db->mallocFailed == '\0') {\n              pOVar26 = local_144->aOp + iVar30;\n            }" if (parenthesized_expression "(local_144->db->mallocFailed == '\0')" ( (binary_expression "local_144->db->mallocFailed == '\0'" (field_expression "local_144->db->mallocFailed" (field_expression "local_144->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pOVar26 = local_144->aOp + iVar30;\n            }" { (expression_statement "pOVar26 = local_144->aOp + iVar30;" (assignment_expression "pOVar26 = local_144->aOp + iVar30" identifier = (binary_expression "local_144->aOp + iVar30" (field_expression "local_144->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = local_144->nOp;" (assignment_expression "pOVar26->p2 = local_144->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) }) (else_clause "else {\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }" else (compound_statement "{\n            sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);\n          }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42)" identifier (argument_list "(local_144,0x32,(int)local_12c,local_144->nOp + 2,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "local_144->nOp + 2" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0xf,(int)local_12c,0,(int)pTVar42)" identifier (argument_list "(local_144,0xf,(int)local_12c,0,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "pVVar47 = local_144;" (assignment_expression "pVVar47 = local_144" identifier = identifier) ;) }))) (if_statement "if (0 < (int)local_118) {\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }" if (parenthesized_expression "(0 < (int)local_118)" ( (binary_expression "0 < (int)local_118" number_literal < (cast_expression "(int)local_118" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);\n        }" { (expression_statement "sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42)" identifier (argument_list "(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42)" ( (field_expression "pParse_00->pVdbe" identifier -> field_identifier) , number_literal , (cast_expression "(int)local_118" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (if_statement "if (0 < pTab->nCol) {\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }" if (parenthesized_expression "(0 < pTab->nCol)" ( (binary_expression "0 < pTab->nCol" number_literal < (field_expression "pTab->nCol" identifier -> field_identifier)) )) (compound_statement "{\n          local_134 = (ExprList_item *)0x0;\n          pVVar47 = (Vdbe *)0x0;\n          do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);\n        }" { (expression_statement "local_134 = (ExprList_item *)0x0;" (assignment_expression "local_134 = (ExprList_item *)0x0" identifier = (cast_expression "(ExprList_item *)0x0" ( (type_descriptor "ExprList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pVVar47 = (Vdbe *)0x0;" (assignment_expression "pVVar47 = (Vdbe *)0x0" identifier = (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          } while ((int)pVVar47 < (int)pTab->nCol);" do (compound_statement "{\n            pTVar25 = (Table *)(puVar16 + (int)pVVar47);\n            if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }\nLAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);\n          }" { (expression_statement "pTVar25 = (Table *)(puVar16 + (int)pVVar47);" (assignment_expression "pTVar25 = (Table *)(puVar16 + (int)pVVar47)" identifier = (cast_expression "(Table *)(puVar16 + (int)pVVar47)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + (int)pVVar47)" ( (binary_expression "puVar16 + (int)pVVar47" identifier + (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((Vdbe *)(int)pTab->iPKey == pVVar47) {\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }\n            else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }" if (parenthesized_expression "((Vdbe *)(int)pTab->iPKey == pVVar47)" ( (binary_expression "(Vdbe *)(int)pTab->iPKey == pVVar47" (cast_expression "(Vdbe *)(int)pTab->iPKey" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)pTab->iPKey" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->iPKey" identifier -> field_identifier))) == identifier) )) (compound_statement "{\n              sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);\n            }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x4a,(int)pTVar25,0,(int)pTVar42)" identifier (argument_list "(local_144,0x4a,(int)pTVar25,0,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }" else (compound_statement "{\n              if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }\n              pEVar31 = pCVar38->pDflt;\n              if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }\n            }" { (if_statement "if (pParse == (Parse *)0x0) {\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }\n              else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }" if (parenthesized_expression "(pParse == (Parse *)0x0)" ( (binary_expression "pParse == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pCVar38 = pTab->aCol + (int)pVVar47;\n                if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }\n              }" { (expression_statement "pCVar38 = pTab->aCol + (int)pVVar47;" (assignment_expression "pCVar38 = pTab->aCol + (int)pVVar47" identifier = (binary_expression "pTab->aCol + (int)pVVar47" (field_expression "pTab->aCol" identifier -> field_identifier) + (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pCVar38->colFlags & 2) == 0) {\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }" if (parenthesized_expression "((pCVar38->colFlags & 2) == 0)" ( (binary_expression "(pCVar38->colFlags & 2) == 0" (parenthesized_expression "(pCVar38->colFlags & 2)" ( (binary_expression "pCVar38->colFlags & 2" (field_expression "pCVar38->colFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar51 = (char *)((int)pVVar47 - (int)local_134);\n                  if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;\n                }" { (expression_statement "pcVar51 = (char *)((int)pVVar47 - (int)local_134);" (assignment_expression "pcVar51 = (char *)((int)pVVar47 - (int)local_134)" identifier = (cast_expression "(char *)((int)pVVar47 - (int)local_134)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pVVar47 - (int)local_134)" ( (binary_expression "(int)pVVar47 - (int)local_134" (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)) goto LAB_000f47c2;" if (parenthesized_expression "((-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0))" ( (binary_expression "(-1 < (int)pcVar51) && (local_174 != (sqlite3 *)0x0)" (parenthesized_expression "(-1 < (int)pcVar51)" ( (binary_expression "-1 < (int)pcVar51" number_literal < (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(local_174 != (sqlite3 *)0x0)" ( (binary_expression "local_174 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000f47c2;" goto statement_identifier ;)) }) (else_clause "else {\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }" else (compound_statement "{\n                  local_134 = (ExprList_item *)((int)local_134 + 1);\n                }" { (expression_statement "local_134 = (ExprList_item *)((int)local_134 + 1);" (assignment_expression "local_134 = (ExprList_item *)((int)local_134 + 1)" identifier = (cast_expression "(ExprList_item *)((int)local_134 + 1)" ( (type_descriptor "ExprList_item *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 + 1)" ( (binary_expression "(int)local_134 + 1" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) (else_clause "else {\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }" else (compound_statement "{\n                if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;\n              }" { (if_statement "if (0 < (int)pParse->zErrMsg) {\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" if (parenthesized_expression "(0 < (int)pParse->zErrMsg)" ( (binary_expression "0 < (int)pParse->zErrMsg" number_literal < (cast_expression "(int)pParse->zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pParse->zErrMsg" identifier -> field_identifier))) )) (compound_statement "{\n                  pcVar51 = (char *)0x0;\n                  pVVar8 = pParse->db->pVdbe;\n                  while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }\n                  if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" { (expression_statement "pcVar51 = (char *)0x0;" (assignment_expression "pcVar51 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pVVar8 = pParse->db->pVdbe;" (assignment_expression "pVVar8 = pParse->db->pVdbe" identifier = (field_expression "pParse->db->pVdbe" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier)) ;) (while_statement "while (pVVar8 != pVVar47) {\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }" while (parenthesized_expression "(pVVar8 != pVVar47)" ( (binary_expression "pVVar8 != pVVar47" identifier != identifier) )) (compound_statement "{\n                    pcVar51 = pcVar51 + 1;\n                    if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;\n                    pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];\n                  }" { (expression_statement "pcVar51 = pcVar51 + 1;" (assignment_expression "pcVar51 = pcVar51 + 1" identifier = (binary_expression "pcVar51 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar51 == pParse->zErrMsg) goto LAB_000f47ad;" if (parenthesized_expression "(pcVar51 == pParse->zErrMsg)" ( (binary_expression "pcVar51 == pParse->zErrMsg" identifier == (field_expression "pParse->zErrMsg" identifier -> field_identifier)) )) (goto_statement "goto LAB_000f47ad;" goto statement_identifier ;)) (expression_statement "pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19];" (assignment_expression "pVVar8 = (Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" identifier = (cast_expression "(Vdbe *)pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pParse->db->aLimit[(int)pcVar51 * 2 + -0x19]" (field_expression "pParse->db->aLimit" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) [ (binary_expression "(int)pcVar51 * 2 + -0x19" (binary_expression "(int)pcVar51 * 2" (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) ;) })) (if_statement "if (local_174 != (sqlite3 *)0x0) {\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }" if (parenthesized_expression "(local_174 != (sqlite3 *)0x0)" ( (binary_expression "local_174 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }\n                    goto LAB_000f4756;\n                  }" { (labeled_statement "LAB_000f47c2:\n                    if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" statement_identifier : (if_statement "if (bVar9) {\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }\n                    else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n                      sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);\n                      pTVar42 = pTVar25;\n                    }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25);" (call_expression "sqlite3VdbeAddOp3(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25)" identifier (argument_list "(local_144,0x5a,iVar13,(int)pcVar51,(int)pTVar25)" ( identifier , number_literal , identifier , (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "pTVar42 = pTVar25;" (assignment_expression "pTVar42 = pTVar25" identifier = identifier) ;) }) (else_clause "else if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" else (if_statement "if (local_158 == (Table *)0x0) {\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }\n                    else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" if (parenthesized_expression "(local_158 == (Table *)0x0)" ( (binary_expression "local_158 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);\n                    }" { (expression_statement "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25);" (call_expression "sqlite3ExprCode(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25)" identifier (argument_list "(pParse_00,(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5],\n                                      (int)pTVar25)" ( identifier , (cast_expression "(Expr *)(&local_148->pPrev)[(int)pcVar51 * 5]" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&local_148->pPrev)[(int)pcVar51 * 5]" (parenthesized_expression "(&local_148->pPrev)" ( (pointer_expression "&local_148->pPrev" & (field_expression "local_148->pPrev" identifier -> field_identifier)) )) [ (binary_expression "(int)pcVar51 * 5" (cast_expression "(int)pcVar51" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ])) , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" else (if_statement "if (local_170 != puVar16) {\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" if (parenthesized_expression "(local_170 != puVar16)" ( (binary_expression "local_170 != puVar16" identifier != identifier) )) (compound_statement "{\n                      sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);\n                    }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42)" identifier (argument_list "(local_144,0x4f,(int)(pcVar51 + (int)local_170),(int)pTVar25,\n                                        (int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)(pcVar51 + (int)local_170)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar51 + (int)local_170)" ( (binary_expression "pcVar51 + (int)local_170" identifier + (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))))))) (goto_statement "goto LAB_000f4756;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000f47ad:\n                pCVar38 = pTab->aCol + (int)pVVar47;" statement_identifier : (expression_statement "pCVar38 = pTab->aCol + (int)pVVar47;" (assignment_expression "pCVar38 = pTab->aCol + (int)pVVar47" identifier = (binary_expression "pTab->aCol + (int)pVVar47" (field_expression "pTab->aCol" identifier -> field_identifier) + (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) }))) (expression_statement "pEVar31 = pCVar38->pDflt;" (assignment_expression "pEVar31 = pCVar38->pDflt" identifier = (field_expression "pCVar38->pDflt" identifier -> field_identifier)) ;) (if_statement "if (pParse_00->okConstFactor == '\0') {\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }\n              else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }" if (parenthesized_expression "(pParse_00->okConstFactor == '\0')" ( (binary_expression "pParse_00->okConstFactor == '\0'" (field_expression "pParse_00->okConstFactor" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);\n              }" { (labeled_statement "LAB_000f474b:\n                sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);" statement_identifier : (expression_statement "sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25);" (call_expression "sqlite3ExprCode(pParse_00,pEVar31,(int)pTVar25)" identifier (argument_list "(pParse_00,pEVar31,(int)pTVar25)" ( identifier , identifier , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;)) }) (else_clause "else {\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }" else (compound_statement "{\n                sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);\n                sNC.ncFlags = 0;\n                sNC._26_2_ = 0;\n                sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);\n                sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);\n                if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }\n                sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);\n              }" { (expression_statement "sNC.nErr = CONCAT31(sNC.nErr._1_3_,2);" (assignment_expression "sNC.nErr = CONCAT31(sNC.nErr._1_3_,2)" (field_expression "sNC.nErr" identifier . field_identifier) = (call_expression "CONCAT31(sNC.nErr._1_3_,2)" identifier (argument_list "(sNC.nErr._1_3_,2)" ( (field_expression "sNC.nErr._1_3_" (field_expression "sNC.nErr" identifier . field_identifier) . field_identifier) , number_literal )))) ;) (expression_statement "sNC.ncFlags = 0;" (assignment_expression "sNC.ncFlags = 0" (field_expression "sNC.ncFlags" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC._26_2_ = 0;" (assignment_expression "sNC._26_2_ = 0" (field_expression "sNC._26_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67);" (assignment_expression "sNC.pSrcList = (SrcList *)(unaff_EDI + -0xadd67)" (field_expression "sNC.pSrcList" identifier . field_identifier) = (cast_expression "(SrcList *)(unaff_EDI + -0xadd67)" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0xadd67)" ( (binary_expression "unaff_EDI + -0xadd67" identifier + number_literal) )))) ;) (expression_statement "sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7);" (assignment_expression "sNC.uNC.pEList = (ExprList *)(unaff_EDI + -0xb66d7)" (field_expression "sNC.uNC.pEList" (field_expression "sNC.uNC" identifier . field_identifier) . field_identifier) = (cast_expression "(ExprList *)(unaff_EDI + -0xb66d7)" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0xb66d7)" ( (binary_expression "unaff_EDI + -0xb66d7" identifier + number_literal) )))) ;) (if_statement "if (pEVar31 != (Expr *)0x0) {\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }" if (parenthesized_expression "(pEVar31 != (Expr *)0x0)" ( (binary_expression "pEVar31 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  walkExpr((Walker *)&sNC,pEVar31);\n                  if ((char)sNC.nErr == '\0') goto LAB_000f474b;\n                }" { (expression_statement "walkExpr((Walker *)&sNC,pEVar31);" (call_expression "walkExpr((Walker *)&sNC,pEVar31)" identifier (argument_list "((Walker *)&sNC,pEVar31)" ( (cast_expression "(Walker *)&sNC" ( (type_descriptor "Walker *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sNC" & identifier)) , identifier ))) ;) (if_statement "if ((char)sNC.nErr == '\0') goto LAB_000f474b;" if (parenthesized_expression "((char)sNC.nErr == '\0')" ( (binary_expression "(char)sNC.nErr == '\0'" (cast_expression "(char)sNC.nErr" ( (type_descriptor "char" primitive_type) ) (field_expression "sNC.nErr" identifier . field_identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000f474b;" goto statement_identifier ;)) })) (expression_statement "sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25);" (call_expression "sqlite3ExprCodeAtInit(pParse_00,pEVar31,(int)pTVar25)" identifier (argument_list "(pParse_00,pEVar31,(int)pTVar25)" ( identifier , identifier , (cast_expression "(int)pTVar25" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) }))) (labeled_statement "LAB_000f4756:\n            pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);" statement_identifier : (expression_statement "pVVar47 = (Vdbe *)((int)&pVVar47->db + 1);" (assignment_expression "pVVar47 = (Vdbe *)((int)&pVVar47->db + 1)" identifier = (cast_expression "(Vdbe *)((int)&pVVar47->db + 1)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVVar47->db + 1)" ( (binary_expression "(int)&pVVar47->db + 1" (cast_expression "(int)&pVVar47->db" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVVar47->db" & (field_expression "pVVar47->db" identifier -> field_identifier))) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)pVVar47 < (int)pTab->nCol)" ( (binary_expression "(int)pVVar47 < (int)pTab->nCol" (cast_expression "(int)pVVar47" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) )) ;) })) (if_statement "if (pTab->nModuleArg == 0) {\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }\n        else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);\n          sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);\n          if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }\n          sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);\n        }" { (expression_statement "sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74);" (call_expression "sqlite3GenerateConstraintChecks\n                    ((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74)" identifier (argument_list "((Parse *)iDataCur,(Table *)iIdxCur,(int *)pTVar20,0,~local_140 >> 0x1f,\n                     (uint)pTabList & 0xff,(int)pTVar48,(u8)&sNC,'\0',(int)pSelect,(int *)pVVar47,\n                     (int *)pVVar47,(Upsert *)in_stack_fffffe74)" ( (cast_expression "(Parse *)iDataCur" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Table *)iIdxCur" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int *)pTVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "~local_140 >> 0x1f" (unary_expression "~local_140" ~ identifier) >> number_literal) , (binary_expression "(uint)pTabList & 0xff" (cast_expression "(uint)pTabList" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(u8)&sNC" (parenthesized_expression "(u8)" ( identifier )) & identifier) , (char_literal "'\0'" ' escape_sequence ') , (cast_expression "(int)pSelect" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int *)pVVar47" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int *)pVVar47" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Upsert *)in_stack_fffffe74" ( (type_descriptor "Upsert *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0);" (call_expression "sqlite3FkCheck(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0)" identifier (argument_list "(pParse_00,pTab,0,(int)pTVar20,(int *)0x0,0)" ( identifier , identifier , number_literal , (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (if_statement "if (sNC.pParse == (Parse *)0x0) {\n            pTVar42 = (Table *)&DAT_00000001;\n          }\n          else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }" if (parenthesized_expression "(sNC.pParse == (Parse *)0x0)" ( (binary_expression "sNC.pParse == (Parse *)0x0" (field_expression "sNC.pParse" identifier . field_identifier) == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pTVar42 = (Table *)&DAT_00000001;\n          }" { (expression_statement "pTVar42 = (Table *)&DAT_00000001;" (assignment_expression "pTVar42 = (Table *)&DAT_00000001" identifier = (cast_expression "(Table *)&DAT_00000001" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) }) (else_clause "else {\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }" else (compound_statement "{\n            pTVar42 = (Table *)0x0;\n            if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }\n          }" { (expression_statement "pTVar42 = (Table *)0x0;" (assignment_expression "pTVar42 = (Table *)0x0" identifier = (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)) {\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }" if (parenthesized_expression "((pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0))" ( (binary_expression "(pTrigger == (Trigger *)0x0) &&\n               (pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)" (parenthesized_expression "(pTrigger == (Trigger *)0x0)" ( (binary_expression "pTrigger == (Trigger *)0x0" identifier == (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0)" ( (comma_expression "pTVar42 = (Table *)&DAT_00000001, (db->flags & 0x4000) != 0" (assignment_expression "pTVar42 = (Table *)&DAT_00000001" identifier = (cast_expression "(Table *)&DAT_00000001" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) , (binary_expression "(db->flags & 0x4000) != 0" (parenthesized_expression "(db->flags & 0x4000)" ( (binary_expression "db->flags & 0x4000" (field_expression "db->flags" identifier -> field_identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);\n              pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);\n            }" { (expression_statement "pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash);" (assignment_expression "pHVar24 = findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash)" identifier = (call_expression "findElementWithHash(&pTab->pSchema->fkeyHash,pTab->zName,pHash)" identifier (argument_list "(&pTab->pSchema->fkeyHash,pTab->zName,pHash)" ( (pointer_expression "&pTab->pSchema->fkeyHash" & (field_expression "pTab->pSchema->fkeyHash" (field_expression "pTab->pSchema" identifier -> field_identifier) -> field_identifier)) , (field_expression "pTab->zName" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0);" (assignment_expression "pTVar42 = (Table *)(uint)(pHVar24->data == (void *)0x0)" identifier = (cast_expression "(Table *)(uint)(pHVar24->data == (void *)0x0)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pHVar24->data == (void *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pHVar24->data == (void *)0x0)" ( (binary_expression "pHVar24->data == (void *)0x0" (field_expression "pHVar24->data" identifier -> field_identifier) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) })) }))) (expression_statement "sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42);" (call_expression "sqlite3CompleteInsertion\n                    (pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42)" identifier (argument_list "(pParse_00,pTab,iDataCur,iIdxCur,(int)pTVar20,(int *)local_168,0,local_138,\n                     (int)pTVar42)" ( identifier , identifier , identifier , identifier , (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int *)local_168" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }" else (compound_statement "{\n          for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }\n          sqlite3VtabMakeWritable(pParse_00,pTab);\n          iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);\n          sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);\n          uVar34 = (u16)pTabList;\n          if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }\n          if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }\n          pPVar23 = pParse_00->pToplevel;\n          if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }\n          pPVar23->mayAbort = '\x01';\n          pTVar42 = pTVar20;\n        }" { (for_statement "for (pVVar27 = pTab->pVTable; (pVVar27 != (VTable *)0x0 && (db != pVVar27->db));\n              pVVar27 = pVVar27->pNext) {\n          }" for ( (assignment_expression "pVVar27 = pTab->pVTable" identifier = (field_expression "pTab->pVTable" identifier -> field_identifier)) ; (parenthesized_expression "(pVVar27 != (VTable *)0x0 && (db != pVVar27->db))" ( (binary_expression "pVVar27 != (VTable *)0x0 && (db != pVVar27->db)" (binary_expression "pVVar27 != (VTable *)0x0" identifier != (cast_expression "(VTable *)0x0" ( (type_descriptor "VTable *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(db != pVVar27->db)" ( (binary_expression "db != pVVar27->db" identifier != (field_expression "pVVar27->db" identifier -> field_identifier)) ))) )) ; (assignment_expression "pVVar27 = pVVar27->pNext" identifier = (field_expression "pVVar27->pNext" identifier -> field_identifier)) ) (compound_statement "{\n          }" { })) (expression_statement "sqlite3VtabMakeWritable(pParse_00,pTab);" (call_expression "sqlite3VtabMakeWritable(pParse_00,pTab)" identifier (argument_list "(pParse_00,pTab)" ( identifier , identifier ))) ;) (expression_statement "iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20);" (assignment_expression "iVar30 = sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20)" identifier = (call_expression "sqlite3VdbeAddOp3(local_144,10,1,pTab->nCol + 2,(int)pTVar20)" identifier (argument_list "(local_144,10,1,pTab->nCol + 2,(int)pTVar20)" ( identifier , number_literal , number_literal , (binary_expression "pTab->nCol + 2" (field_expression "pTab->nCol" identifier -> field_identifier) + number_literal) , (cast_expression "(int)pTVar20" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc);" (call_expression "sqlite3VdbeChangeP4(local_144,iVar30,(char *)pVVar27,-0xc)" identifier (argument_list "(local_144,iVar30,(char *)pVVar27,-0xc)" ( identifier , identifier , (cast_expression "(char *)pVVar27" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "uVar34 = (u16)pTabList;" (assignment_expression "uVar34 = (u16)pTabList" identifier = (cast_expression "(u16)pTabList" ( (type_descriptor "u16" type_identifier) ) identifier)) ;) (if_statement "if (pTabList == (SrcList *)0xb) {\n            uVar34 = 2;\n          }" if (parenthesized_expression "(pTabList == (SrcList *)0xb)" ( (binary_expression "pTabList == (SrcList *)0xb" identifier == (cast_expression "(SrcList *)0xb" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar34 = 2;\n          }" { (expression_statement "uVar34 = 2;" (assignment_expression "uVar34 = 2" identifier = number_literal) ;) })) (if_statement "if (0 < local_144->nOp) {\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }" if (parenthesized_expression "(0 < local_144->nOp)" ( (binary_expression "0 < local_144->nOp" number_literal < (field_expression "local_144->nOp" identifier -> field_identifier)) )) (compound_statement "{\n            local_144->aOp[local_144->nOp + -1].p5 = uVar34;\n          }" { (expression_statement "local_144->aOp[local_144->nOp + -1].p5 = uVar34;" (assignment_expression "local_144->aOp[local_144->nOp + -1].p5 = uVar34" (field_expression "local_144->aOp[local_144->nOp + -1].p5" (subscript_expression "local_144->aOp[local_144->nOp + -1]" (field_expression "local_144->aOp" identifier -> field_identifier) [ (binary_expression "local_144->nOp + -1" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = identifier) ;) })) (expression_statement "pPVar23 = pParse_00->pToplevel;" (assignment_expression "pPVar23 = pParse_00->pToplevel" identifier = (field_expression "pParse_00->pToplevel" identifier -> field_identifier)) ;) (if_statement "if (pParse_00->pToplevel == (Parse *)0x0) {\n            pPVar23 = pParse_00;\n          }" if (parenthesized_expression "(pParse_00->pToplevel == (Parse *)0x0)" ( (binary_expression "pParse_00->pToplevel == (Parse *)0x0" (field_expression "pParse_00->pToplevel" identifier -> field_identifier) == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar23 = pParse_00;\n          }" { (expression_statement "pPVar23 = pParse_00;" (assignment_expression "pPVar23 = pParse_00" identifier = identifier) ;) })) (expression_statement "pPVar23->mayAbort = '\x01';" (assignment_expression "pPVar23->mayAbort = '\x01'" (field_expression "pPVar23->mayAbort" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pTVar42 = pTVar20;" (assignment_expression "pTVar42 = pTVar20" identifier = identifier) ;) }))) })) (if_statement "if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }" if (parenthesized_expression "(local_16c != (Table *)0x0)" ( (binary_expression "local_16c != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);\n      }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x53,(int)local_16c,1,(int)pTVar42)" identifier (argument_list "(local_144,0x53,(int)local_16c,1,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (if_statement "if (pTrigger != (Trigger *)0x0) {\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }" if (parenthesized_expression "(pTrigger != (Trigger *)0x0)" ( (binary_expression "pTrigger != (Trigger *)0x0" identifier != (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pTVar42 = pTVar48;\n        sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);\n      }" { (expression_statement "pTVar42 = pTVar48;" (assignment_expression "pTVar42 = pTVar48" identifier = identifier) ;) (expression_statement "sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48);" (call_expression "sqlite3CodeRowTrigger\n                  (pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48)" identifier (argument_list "(pParse_00,pTrigger,0x74,(ExprList *)0x0,2,pTab,(int)local_110 - (int)pTab->nCol,\n                   (int)pTabList,(int)pTVar48)" ( identifier , identifier , number_literal , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , identifier , (binary_expression "(int)local_110 - (int)pTab->nCol" (cast_expression "(int)local_110" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pTab->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "pTab->nCol" identifier -> field_identifier))) , (cast_expression "(int)pTabList" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "sqlite3VdbeResolveLabel(local_144,(int)pTVar48);" (call_expression "sqlite3VdbeResolveLabel(local_144,(int)pTVar48)" identifier (argument_list "(local_144,(int)pTVar48)" ( identifier , (cast_expression "(int)pTVar48" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (bVar9) {\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }\n      else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n        sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n        sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);\n      }" { (expression_statement "sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,5,iVar13,local_160,(int)pTVar42)" identifier (argument_list "(local_144,5,iVar13,local_160,(int)pTVar42)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }" if (parenthesized_expression "(iVar41 < 0)" ( (binary_expression "iVar41 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar41 = local_144->nOp + -1;\n        }" { (expression_statement "iVar41 = local_144->nOp + -1;" (assignment_expression "iVar41 = local_144->nOp + -1" identifier = (binary_expression "local_144->nOp + -1" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }" if (parenthesized_expression "(local_144->db->mallocFailed == '\0')" ( (binary_expression "local_144->db->mallocFailed == '\0'" (field_expression "local_144->db->mallocFailed" (field_expression "local_144->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pOVar26 = local_144->aOp + iVar41;\n        }" { (expression_statement "pOVar26 = local_144->aOp + iVar41;" (assignment_expression "pOVar26 = local_144->aOp + iVar41" identifier = (binary_expression "local_144->aOp + iVar41" (field_expression "local_144->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = local_144->nOp;" (assignment_expression "pOVar26->p2 = local_144->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) (expression_statement "sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x75,iVar13,0,(int)pTVar42)" identifier (argument_list "(local_144,0x75,iVar13,0,(int)pTVar42)" ( identifier , number_literal , identifier , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }" else (if_statement "if (local_158 != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }" if (parenthesized_expression "(local_158 != (Table *)0x0)" ( (binary_expression "local_158 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);\n        if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }\n        pOVar26 = (Op *)(unaff_EDI + 0xc9455);\n        if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }\n        pOVar26->p2 = local_144->nOp;\n      }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0xb,0,local_160,(int)pTVar42)" identifier (argument_list "(local_144,0xb,0,local_160,(int)pTVar42)" ( identifier , number_literal , number_literal , identifier , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (iVar41 < 0) {\n          iVar41 = local_144->nOp + -1;\n        }" if (parenthesized_expression "(iVar41 < 0)" ( (binary_expression "iVar41 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar41 = local_144->nOp + -1;\n        }" { (expression_statement "iVar41 = local_144->nOp + -1;" (assignment_expression "iVar41 = local_144->nOp + -1" identifier = (binary_expression "local_144->nOp + -1" (field_expression "local_144->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "pOVar26 = (Op *)(unaff_EDI + 0xc9455);" (assignment_expression "pOVar26 = (Op *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(Op *)(unaff_EDI + 0xc9455)" ( (type_descriptor "Op *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (local_144->db->mallocFailed == '\0') {\n          pOVar26 = local_144->aOp + iVar41;\n        }" if (parenthesized_expression "(local_144->db->mallocFailed == '\0')" ( (binary_expression "local_144->db->mallocFailed == '\0'" (field_expression "local_144->db->mallocFailed" (field_expression "local_144->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pOVar26 = local_144->aOp + iVar41;\n        }" { (expression_statement "pOVar26 = local_144->aOp + iVar41;" (assignment_expression "pOVar26 = local_144->aOp + iVar41" identifier = (binary_expression "local_144->aOp + iVar41" (field_expression "local_144->aOp" identifier -> field_identifier) + identifier)) ;) })) (expression_statement "pOVar26->p2 = local_144->nOp;" (assignment_expression "pOVar26->p2 = local_144->nOp" (field_expression "pOVar26->p2" identifier -> field_identifier) = (field_expression "local_144->nOp" identifier -> field_identifier)) ;) })))) (if_statement "if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)) {\n        autoIncrementEnd(pParse_00);\n      }" if (parenthesized_expression "(((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0))" ( (binary_expression "((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)) &&\n         (pParse_00->pAinc != (AutoincInfo *)0x0)" (parenthesized_expression "((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0))" ( (binary_expression "(pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (Table *)0x0)" (parenthesized_expression "(pParse_00->nested == '\0')" ( (binary_expression "pParse_00->nested == '\0'" (field_expression "pParse_00->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pParse_00->pTriggerTab == (Table *)0x0)" ( (binary_expression "pParse_00->pTriggerTab == (Table *)0x0" (field_expression "pParse_00->pTriggerTab" identifier -> field_identifier) == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pParse_00->pAinc != (AutoincInfo *)0x0)" ( (binary_expression "pParse_00->pAinc != (AutoincInfo *)0x0" (field_expression "pParse_00->pAinc" identifier -> field_identifier) != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        autoIncrementEnd(pParse_00);\n      }" { (expression_statement "autoIncrementEnd(pParse_00);" (call_expression "autoIncrementEnd(pParse_00)" identifier (argument_list "(pParse_00)" ( identifier ))) ;) })) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_16c != (Table *)0x0) {\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }" if (parenthesized_expression "(local_16c != (Table *)0x0)" ( (binary_expression "local_16c != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);\n        sqlite3VdbeSetNumCols(local_144,1);\n        if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }\n      }" { (expression_statement "sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42);" (call_expression "sqlite3VdbeAddOp3(local_144,0x51,(int)local_16c,1,(int)pTVar42)" identifier (argument_list "(local_144,0x51,(int)local_16c,1,(int)pTVar42)" ( identifier , number_literal , (cast_expression "(int)local_16c" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(int)pTVar42" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sqlite3VdbeSetNumCols(local_144,1);" (call_expression "sqlite3VdbeSetNumCols(local_144,1)" identifier (argument_list "(local_144,1)" ( identifier , number_literal ))) ;) (if_statement "if (local_144->db->mallocFailed == '\0') {\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }" if (parenthesized_expression "(local_144->db->mallocFailed == '\0')" ( (binary_expression "local_144->db->mallocFailed == '\0'" (field_expression "local_144->db->mallocFailed" (field_expression "local_144->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);\n        }" { (expression_statement "sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0);" (call_expression "sqlite3VdbeSetColName\n                    (local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0)" identifier (argument_list "(local_144,0,0,(char *)(unaff_EDI + 0x6a7cc),(_func_void_void_ptr *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(char *)(unaff_EDI + 0x6a7cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x6a7cc)" ( (binary_expression "unaff_EDI + 0x6a7cc" identifier + number_literal) ))) , (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (if_statement "if (pTab->nModuleArg == 0) {\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }\n  else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      pList->a[0].iCursor = iDataCur;\n      pSelect->selId = (u32)pList;\n      pSelect->addrOpenEphm[1] = iDataCur;\n      pSelect->addrOpenEphm[0] = (int)puVar16;\n      pEVar7 = pSelect->pEList;\n      pSelect->pSrc = (SrcList *)iIdxCur;\n      sNC._0_8_ = uVar10;\n      if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);\n    sqlite3SrcListDelete(db,pList);\n    local_17c = local_168;\n    if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;\n  }" { (expression_statement "pList->a[0].iCursor = iDataCur;" (assignment_expression "pList->a[0].iCursor = iDataCur" (field_expression "pList->a[0].iCursor" (subscript_expression "pList->a[0]" (field_expression "pList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pSelect->selId = (u32)pList;" (assignment_expression "pSelect->selId = (u32)pList" (field_expression "pSelect->selId" identifier -> field_identifier) = (cast_expression "(u32)pList" ( (type_descriptor "u32" type_identifier) ) identifier)) ;) (expression_statement "pSelect->addrOpenEphm[1] = iDataCur;" (assignment_expression "pSelect->addrOpenEphm[1] = iDataCur" (subscript_expression "pSelect->addrOpenEphm[1]" (field_expression "pSelect->addrOpenEphm" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pSelect->addrOpenEphm[0] = (int)puVar16;" (assignment_expression "pSelect->addrOpenEphm[0] = (int)puVar16" (subscript_expression "pSelect->addrOpenEphm[0]" (field_expression "pSelect->addrOpenEphm" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pEVar7 = pSelect->pEList;" (assignment_expression "pEVar7 = pSelect->pEList" identifier = (field_expression "pSelect->pEList" identifier -> field_identifier)) ;) (expression_statement "pSelect->pSrc = (SrcList *)iIdxCur;" (assignment_expression "pSelect->pSrc = (SrcList *)iIdxCur" (field_expression "pSelect->pSrc" identifier -> field_identifier) = (cast_expression "(SrcList *)iIdxCur" ( (type_descriptor "SrcList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sNC._0_8_ = uVar10;" (assignment_expression "sNC._0_8_ = uVar10" (field_expression "sNC._0_8_" identifier . field_identifier) = identifier) ;) (if_statement "if (pEVar7 != (ExprList *)0x0) {\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" if (parenthesized_expression "(pEVar7 != (ExprList *)0x0)" ( (binary_expression "pEVar7 != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar43 = 0;\n        do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);\n        sNC._0_8_ = uVar50;\n        if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }\n        iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);\n        if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" { (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        } while (uVar43 < 0x18);" do (compound_statement "{\n          *(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;\n          uVar43 = uVar43 + 4;\n        }" { (expression_statement "*(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0;" (assignment_expression "*(undefined4 *)((int)sCol + (uVar43 - 0x18)) = 0" (pointer_expression "*(undefined4 *)((int)sCol + (uVar43 - 0x18))" * (cast_expression "(undefined4 *)((int)sCol + (uVar43 - 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)sCol + (uVar43 - 0x18))" ( (binary_expression "(int)sCol + (uVar43 - 0x18)" (cast_expression "(int)sCol" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar43 - 0x18)" ( (binary_expression "uVar43 - 0x18" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar43 = uVar43 + 4;" (assignment_expression "uVar43 = uVar43 + 4" identifier = (binary_expression "uVar43 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar43 < 0x18)" ( (binary_expression "uVar43 < 0x18" identifier < number_literal) )) ;) (expression_statement "sNC._0_8_ = uVar50;" (assignment_expression "sNC._0_8_ = uVar50" (field_expression "sNC._0_8_" identifier . field_identifier) = identifier) ;) (if_statement "if (0 < pEVar7->nExpr) {\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }" if (parenthesized_expression "(0 < pEVar7->nExpr)" ( (binary_expression "0 < pEVar7->nExpr" number_literal < (field_expression "pEVar7->nExpr" identifier -> field_identifier)) )) (compound_statement "{\n          pEVar45 = pEVar7->a;\n          iVar41 = 0;\n          do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);\n        }" { (expression_statement "pEVar45 = pEVar7->a;" (assignment_expression "pEVar45 = pEVar7->a" identifier = (field_expression "pEVar7->a" identifier -> field_identifier)) ;) (expression_statement "iVar41 = 0;" (assignment_expression "iVar41 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          } while (iVar41 < pEVar7->nExpr);" do (compound_statement "{\n            iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);\n            if (iVar30 != 0) goto LAB_000f3d98;\n            iVar41 = iVar41 + 1;\n            pEVar45 = pEVar45 + 1;\n          }" { (expression_statement "iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr);" (assignment_expression "iVar30 = sqlite3ResolveExprNames(&sNC,pEVar45->pExpr)" identifier = (call_expression "sqlite3ResolveExprNames(&sNC,pEVar45->pExpr)" identifier (argument_list "(&sNC,pEVar45->pExpr)" ( (pointer_expression "&sNC" & identifier) , (field_expression "pEVar45->pExpr" identifier -> field_identifier) )))) ;) (if_statement "if (iVar30 != 0) goto LAB_000f3d98;" if (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;)) (expression_statement "iVar41 = iVar41 + 1;" (assignment_expression "iVar41 = iVar41 + 1" identifier = (binary_expression "iVar41 + 1" identifier + number_literal)) ;) (expression_statement "pEVar45 = pEVar45 + 1;" (assignment_expression "pEVar45 = pEVar45 + 1" identifier = (binary_expression "pEVar45 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar41 < pEVar7->nExpr)" ( (binary_expression "iVar41 < pEVar7->nExpr" identifier < (field_expression "pEVar7->nExpr" identifier -> field_identifier)) )) ;) })) (expression_statement "iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op);" (assignment_expression "iVar41 = sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op)" identifier = (call_expression "sqlite3ResolveExprNames(&sNC,*(Expr **)&pSelect->op)" identifier (argument_list "(&sNC,*(Expr **)&pSelect->op)" ( (pointer_expression "&sNC" & identifier) , (pointer_expression "*(Expr **)&pSelect->op" * (cast_expression "(Expr **)&pSelect->op" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pSelect->op" & (field_expression "pSelect->op" identifier -> field_identifier)))) )))) ;) (if_statement "if (iVar41 == 0) {\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }" if (parenthesized_expression "(iVar41 == 0)" ( (binary_expression "iVar41 == 0" identifier == number_literal) )) (compound_statement "{\n          pTVar48 = pList->a[0].pTab;\n          pEVar7 = pSelect->pEList;\n          iVar41 = pList->a[0].iCursor;\n          if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }\n      }" { (expression_statement "pTVar48 = pList->a[0].pTab;" (assignment_expression "pTVar48 = pList->a[0].pTab" identifier = (field_expression "pList->a[0].pTab" (subscript_expression "pList->a[0]" (field_expression "pList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pEVar7 = pSelect->pEList;" (assignment_expression "pEVar7 = pSelect->pEList" identifier = (field_expression "pSelect->pEList" identifier -> field_identifier)) ;) (expression_statement "iVar41 = pList->a[0].iCursor;" (assignment_expression "iVar41 = pList->a[0].iCursor" identifier = (field_expression "pList->a[0].iCursor" (subscript_expression "pList->a[0]" (field_expression "pList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if ((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))) {\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }" if (parenthesized_expression "((((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1))))" ( (binary_expression "(((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)) ||\n             ((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))" (parenthesized_expression "(((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1))" ( (binary_expression "((pTVar48->tabFlags & 0x20) != 0) || (pEVar7->nExpr != 1)" (parenthesized_expression "((pTVar48->tabFlags & 0x20) != 0)" ( (binary_expression "(pTVar48->tabFlags & 0x20) != 0" (parenthesized_expression "(pTVar48->tabFlags & 0x20)" ( (binary_expression "pTVar48->tabFlags & 0x20" (field_expression "pTVar48->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pEVar7->nExpr != 1)" ( (binary_expression "pEVar7->nExpr != 1" (field_expression "pEVar7->nExpr" identifier -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "((pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)))" ( (parenthesized_expression "(pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1))" ( (comma_expression "pEVar31 = pEVar7->a[0].pExpr, pEVar31->op != 0x9e || (pEVar31->iColumn != -1)" (assignment_expression "pEVar31 = pEVar7->a[0].pExpr" identifier = (field_expression "pEVar7->a[0].pExpr" (subscript_expression "pEVar7->a[0]" (field_expression "pEVar7->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) , (binary_expression "pEVar31->op != 0x9e || (pEVar31->iColumn != -1)" (binary_expression "pEVar31->op != 0x9e" (field_expression "pEVar31->op" identifier -> field_identifier) != number_literal) || (parenthesized_expression "(pEVar31->iColumn != -1)" ( (binary_expression "pEVar31->iColumn != -1" (field_expression "pEVar31->iColumn" identifier -> field_identifier) != number_literal) )))) )) ))) )) (compound_statement "{\n            pEVar31 = sCol;\n            for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }\n            sCol[1].op = 0x9e;\n            sCol[0].op = 'f';\n            pEVar31 = (Expr *)0x0;\n            sCol[1].iTable = iVar41;\n            sCol[0].pLeft = sCol + 1;\n            for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }\n        }" { (expression_statement "pEVar31 = sCol;" (assignment_expression "pEVar31 = sCol" identifier = identifier) ;) (for_statement "for (iVar30 = 0x1c; iVar30 != 0; iVar30 = iVar30 + -1) {\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }" for ( (assignment_expression "iVar30 = 0x1c" identifier = number_literal) ; (binary_expression "iVar30 != 0" identifier != number_literal) ; (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ) (compound_statement "{\n              pEVar31->op = '\0';\n              pEVar31->affinity = '\0';\n              *(undefined2 *)&pEVar31->field_0x2 = 0;\n              pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);\n            }" { (expression_statement "pEVar31->op = '\0';" (assignment_expression "pEVar31->op = '\0'" (field_expression "pEVar31->op" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pEVar31->affinity = '\0';" (assignment_expression "pEVar31->affinity = '\0'" (field_expression "pEVar31->affinity" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(undefined2 *)&pEVar31->field_0x2 = 0;" (assignment_expression "*(undefined2 *)&pEVar31->field_0x2 = 0" (pointer_expression "*(undefined2 *)&pEVar31->field_0x2" * (cast_expression "(undefined2 *)&pEVar31->field_0x2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar31->field_0x2" & (field_expression "pEVar31->field_0x2" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4);" (assignment_expression "pEVar31 = (Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4)" identifier = (cast_expression "(Expr *)((int)pEVar31 + (uint)bVar49 * -8 + 4)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar31 + (uint)bVar49 * -8 + 4)" ( (binary_expression "(int)pEVar31 + (uint)bVar49 * -8 + 4" (binary_expression "(int)pEVar31 + (uint)bVar49 * -8" (cast_expression "(int)pEVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar49 * -8" (cast_expression "(uint)bVar49" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "sCol[1].op = 0x9e;" (assignment_expression "sCol[1].op = 0x9e" (field_expression "sCol[1].op" (subscript_expression "sCol[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "sCol[0].op = 'f';" (assignment_expression "sCol[0].op = 'f'" (field_expression "sCol[0].op" (subscript_expression "sCol[0]" identifier [ number_literal ]) . field_identifier) = (char_literal "'f'" ' character ')) ;) (expression_statement "pEVar31 = (Expr *)0x0;" (assignment_expression "pEVar31 = (Expr *)0x0" identifier = (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sCol[1].iTable = iVar41;" (assignment_expression "sCol[1].iTable = iVar41" (field_expression "sCol[1].iTable" (subscript_expression "sCol[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "sCol[0].pLeft = sCol + 1;" (assignment_expression "sCol[0].pLeft = sCol + 1" (field_expression "sCol[0].pLeft" (subscript_expression "sCol[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "sCol + 1" identifier + number_literal)) ;) (for_statement "for (pIVar21 = pTVar48->pIndex; pIVar21 != (Index *)0x0; pIVar21 = pIVar21->pNext) {\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }" for ( (assignment_expression "pIVar21 = pTVar48->pIndex" identifier = (field_expression "pTVar48->pIndex" identifier -> field_identifier)) ; (binary_expression "pIVar21 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pIVar21 = pIVar21->pNext" identifier = (field_expression "pIVar21->pNext" identifier -> field_identifier)) ) (compound_statement "{\n              if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);\n            sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);\n          }" { (if_statement "if ((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)) {\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }" if (parenthesized_expression "((pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43))" ( (binary_expression "(pIVar21->onError != '\0') &&\n                 (uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)" (parenthesized_expression "(pIVar21->onError != '\0')" ( (binary_expression "pIVar21->onError != '\0'" (field_expression "pIVar21->onError" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43)" ( (comma_expression "uVar43 = (uint)pIVar21->nKeyCol, pEVar7->nExpr == uVar43" (assignment_expression "uVar43 = (uint)pIVar21->nKeyCol" identifier = (cast_expression "(uint)pIVar21->nKeyCol" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar21->nKeyCol" identifier -> field_identifier))) , (binary_expression "pEVar7->nExpr == uVar43" (field_expression "pEVar7->nExpr" identifier -> field_identifier) == identifier)) ))) )) (compound_statement "{\n                pEVar31 = pIVar21->pPartIdxWhere;\n                if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }\n              }" { (expression_statement "pEVar31 = pIVar21->pPartIdxWhere;" (assignment_expression "pEVar31 = pIVar21->pPartIdxWhere" identifier = (field_expression "pIVar21->pPartIdxWhere" identifier -> field_identifier)) ;) (if_statement "if (pEVar31 == (Expr *)0x0) {\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }\n                else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(pEVar31 == (Expr *)0x0)" ( (binary_expression "pEVar31 == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }\n                  uVar29 = 0;\n                  while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }\n                }" { (labeled_statement "LAB_000f502a:\n                  if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }" statement_identifier : (if_statement "if (uVar43 == 0) {\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }" if (parenthesized_expression "(uVar43 == 0)" ( (binary_expression "uVar43 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;\n                    goto LAB_000f3d98;\n                  }" { (labeled_statement "LAB_000f50dd:\n                    pSelect->iOffset = (int)pIVar21;" statement_identifier : (expression_statement "pSelect->iOffset = (int)pIVar21;" (assignment_expression "pSelect->iOffset = (int)pIVar21" (field_expression "pSelect->iOffset" identifier -> field_identifier) = (cast_expression "(int)pIVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) }))) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);\n                    if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }\n                    local_160 = 0;\n                    local_134 = pEVar7->a;\n                    while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar43 <= (int)local_160) break;\n                    uVar29 = uVar29 + 1;\n                    if (uVar43 == uVar29) goto LAB_000f50dd;\n                  }" { (expression_statement "sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29);" (assignment_expression "sCol[0].u = *(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29)" (field_expression "sCol[0].u" (subscript_expression "sCol[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29)" * (cast_expression "(anon_union_4_2_443a03b8_for_u *)(pIVar21->azColl + uVar29)" ( (type_descriptor "anon_union_4_2_443a03b8_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar21->azColl + uVar29)" ( (binary_expression "pIVar21->azColl + uVar29" (field_expression "pIVar21->azColl" identifier -> field_identifier) + identifier) ))))) ;) (if_statement "if (pIVar21->aiColumn[uVar29] == -2) {\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }\n                    else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }" if (parenthesized_expression "(pIVar21->aiColumn[uVar29] == -2)" ( (binary_expression "pIVar21->aiColumn[uVar29] == -2" (subscript_expression "pIVar21->aiColumn[uVar29]" (field_expression "pIVar21->aiColumn" identifier -> field_identifier) [ identifier ]) == number_literal) )) (compound_statement "{\n                      pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;\n                      pB = pEVar31;\n                      if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }\n                    }" { (expression_statement "pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr;" (assignment_expression "pEVar31 = pIVar21->aColExpr->a[uVar29].pExpr" identifier = (field_expression "pIVar21->aColExpr->a[uVar29].pExpr" (subscript_expression "pIVar21->aColExpr->a[uVar29]" (field_expression "pIVar21->aColExpr->a" (field_expression "pIVar21->aColExpr" identifier -> field_identifier) -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "pB = pEVar31;" (assignment_expression "pB = pEVar31" identifier = identifier) ;) (if_statement "if (pEVar31->op != 'f') {\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }" if (parenthesized_expression "(pEVar31->op != 'f')" ( (binary_expression "pEVar31->op != 'f'" (field_expression "pEVar31->op" identifier -> field_identifier) != (char_literal "'f'" ' character ')) )) (compound_statement "{\n                        pB = sCol;\n                        sCol[0].pLeft = pEVar31;\n                      }" { (expression_statement "pB = sCol;" (assignment_expression "pB = sCol" identifier = identifier) ;) (expression_statement "sCol[0].pLeft = pEVar31;" (assignment_expression "sCol[0].pLeft = pEVar31" (field_expression "sCol[0].pLeft" (subscript_expression "sCol[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) })) }) (else_clause "else {\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }" else (compound_statement "{\n                      sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];\n                      pB = sCol;\n                      sCol[0].pLeft = sCol + 1;\n                    }" { (expression_statement "sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29];" (assignment_expression "sCol[1].iColumn = (ynVar)pIVar21->aiColumn[uVar29]" (field_expression "sCol[1].iColumn" (subscript_expression "sCol[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(ynVar)pIVar21->aiColumn[uVar29]" ( (type_descriptor "ynVar" type_identifier) ) (subscript_expression "pIVar21->aiColumn[uVar29]" (field_expression "pIVar21->aiColumn" identifier -> field_identifier) [ identifier ]))) ;) (expression_statement "pB = sCol;" (assignment_expression "pB = sCol" identifier = identifier) ;) (expression_statement "sCol[0].pLeft = sCol + 1;" (assignment_expression "sCol[0].pLeft = sCol + 1" (field_expression "sCol[0].pLeft" (subscript_expression "sCol[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "sCol + 1" identifier + number_literal)) ;) }))) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_134 = pEVar7->a;" (assignment_expression "local_134 = pEVar7->a" identifier = (field_expression "pEVar7->a" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);\n                      pEVar31 = extraout_ECX_01;\n                      if (iVar30 < 2) break;\n                      local_160 = local_160 + 1;\n                      local_134 = local_134 + 1;\n                      if (uVar43 == local_160) goto LAB_000f4fe0;\n                    }" { (expression_statement "iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41);" (assignment_expression "iVar30 = sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41)" identifier = (call_expression "sqlite3ExprCompare(pParse_00,local_134->pExpr,pB,iVar41)" identifier (argument_list "(pParse_00,local_134->pExpr,pB,iVar41)" ( identifier , (field_expression "local_134->pExpr" identifier -> field_identifier) , identifier , identifier )))) ;) (expression_statement "pEVar31 = extraout_ECX_01;" (assignment_expression "pEVar31 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (iVar30 < 2) break;" if (parenthesized_expression "(iVar30 < 2)" ( (binary_expression "iVar30 < 2" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_160 = local_160 + 1;" (assignment_expression "local_160 = local_160 + 1" identifier = (binary_expression "local_160 + 1" identifier + number_literal)) ;) (expression_statement "local_134 = local_134 + 1;" (assignment_expression "local_134 = local_134 + 1" identifier = (binary_expression "local_134 + 1" identifier + number_literal)) ;) (if_statement "if (uVar43 == local_160) goto LAB_000f4fe0;" if (parenthesized_expression "(uVar43 == local_160)" ( (binary_expression "uVar43 == local_160" identifier == identifier) )) (goto_statement "goto LAB_000f4fe0;" goto statement_identifier ;)) })) (if_statement "if ((int)uVar43 <= (int)local_160) break;" if (parenthesized_expression "((int)uVar43 <= (int)local_160)" ( (binary_expression "(int)uVar43 <= (int)local_160" (cast_expression "(int)uVar43" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_160" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = uVar29 + 1;" (assignment_expression "uVar29 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar43 == uVar29) goto LAB_000f50dd;" if (parenthesized_expression "(uVar43 == uVar29)" ( (binary_expression "uVar43 == uVar29" identifier == identifier) )) (goto_statement "goto LAB_000f50dd;" goto statement_identifier ;)) })) }) (else_clause "else if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }" else (if_statement "if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(*(Expr **)&pSelect->op != (Expr *)0x0)" ( (binary_expression "*(Expr **)&pSelect->op != (Expr *)0x0" (pointer_expression "*(Expr **)&pSelect->op" * (cast_expression "(Expr **)&pSelect->op" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pSelect->op" & (field_expression "pSelect->op" identifier -> field_identifier)))) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);\n                  pEVar31 = extraout_ECX_00;\n                  if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }\n                }" { (expression_statement "iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41);" (assignment_expression "iVar30 = sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41)" identifier = (call_expression "sqlite3ExprCompare(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41)" identifier (argument_list "(pParse_00,*(Expr **)&pSelect->op,pEVar31,iVar41)" ( identifier , (pointer_expression "*(Expr **)&pSelect->op" * (cast_expression "(Expr **)&pSelect->op" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pSelect->op" & (field_expression "pSelect->op" identifier -> field_identifier)))) , identifier , identifier )))) ;) (expression_statement "pEVar31 = extraout_ECX_00;" (assignment_expression "pEVar31 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (iVar30 == 0) {\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar43 = (uint)pIVar21->nKeyCol;\n                    goto LAB_000f502a;\n                  }" { (expression_statement "uVar43 = (uint)pIVar21->nKeyCol;" (assignment_expression "uVar43 = (uint)pIVar21->nKeyCol" identifier = (cast_expression "(uint)pIVar21->nKeyCol" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar21->nKeyCol" identifier -> field_identifier))) ;) (goto_statement "goto LAB_000f502a;" goto statement_identifier ;) })) })))) })) (labeled_statement "LAB_000f4fe0:\n            }\n            pTVar42 = (Table *)(unaff_EDI + 0x77d7d);" statement_identifier : (ERROR "}" }) (expression_statement "pTVar42 = (Table *)(unaff_EDI + 0x77d7d);" (assignment_expression "pTVar42 = (Table *)(unaff_EDI + 0x77d7d)" identifier = (cast_expression "(Table *)(unaff_EDI + 0x77d7d)" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x77d7d)" ( (binary_expression "unaff_EDI + 0x77d7d" identifier + number_literal) )))) ;)) (expression_statement "sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31);" (call_expression "sqlite3ErrorMsg(pParse_00,(char *)pTVar42,pEVar31,pEVar31)" identifier (argument_list "(pParse_00,(char *)pTVar42,pEVar31,pEVar31)" ( identifier , (cast_expression "(char *)pTVar42" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) })) })) })) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) })) (expression_statement "sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43);" (call_expression "sqlite3ErrorMsg(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43)" identifier (argument_list "(pParse_00,&UNK_00077d4d + unaff_EDI,pTab->zName,uVar43)" ( identifier , (binary_expression "&UNK_00077d4d + unaff_EDI" (pointer_expression "&UNK_00077d4d" & identifier) + identifier) , (field_expression "pTab->zName" identifier -> field_identifier) , identifier ))) ;) (expression_statement "sqlite3SrcListDelete(db,pList);" (call_expression "sqlite3SrcListDelete(db,pList)" identifier (argument_list "(db,pList)" ( identifier , identifier ))) ;) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_148 != (Vdbe *)0x0) goto LAB_000f3688;" if (parenthesized_expression "(local_148 != (Vdbe *)0x0)" ( (binary_expression "local_148 != (Vdbe *)0x0" identifier != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f3688;" goto statement_identifier ;)) }) (else_clause "else {\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }" else (compound_statement "{\n    sqlite3SrcListDelete(db,pList);\n    local_17c = (AutoincInfo *)0x0;\nLAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;\n  }" { (expression_statement "sqlite3SrcListDelete(db,pList);" (call_expression "sqlite3SrcListDelete(db,pList)" identifier (argument_list "(db,pList)" ( identifier , identifier ))) ;) (expression_statement "local_17c = (AutoincInfo *)0x0;" (assignment_expression "local_17c = (AutoincInfo *)0x0" identifier = (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f36a8:\n    if (pSelect == (Select *)0x0) goto LAB_000f370c;" statement_identifier : (if_statement "if (pSelect == (Select *)0x0) goto LAB_000f370c;" if (parenthesized_expression "(pSelect == (Select *)0x0)" ( (binary_expression "pSelect == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f370c;" goto statement_identifier ;))) }))) (labeled_statement "LAB_000f36b0:\n  if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }" statement_identifier : (if_statement "if (pSelect->pEList != (ExprList *)0x0) {\n    exprListDeleteNN(db,pSelect->pEList);\n  }" if (parenthesized_expression "(pSelect->pEList != (ExprList *)0x0)" ( (binary_expression "pSelect->pEList != (ExprList *)0x0" (field_expression "pSelect->pEList" identifier -> field_identifier) != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    exprListDeleteNN(db,pSelect->pEList);\n  }" { (expression_statement "exprListDeleteNN(db,pSelect->pEList);" (call_expression "exprListDeleteNN(db,pSelect->pEList)" identifier (argument_list "(db,pSelect->pEList)" ( identifier , (field_expression "pSelect->pEList" identifier -> field_identifier) ))) ;) }))) (if_statement "if (*(Expr **)&pSelect->op != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }" if (parenthesized_expression "(*(Expr **)&pSelect->op != (Expr *)0x0)" ( (binary_expression "*(Expr **)&pSelect->op != (Expr *)0x0" (pointer_expression "*(Expr **)&pSelect->op" * (cast_expression "(Expr **)&pSelect->op" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pSelect->op" & (field_expression "pSelect->op" identifier -> field_identifier)))) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);\n  }" { (expression_statement "sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op);" (call_expression "sqlite3ExprDeleteNN(db,*(Expr **)&pSelect->op)" identifier (argument_list "(db,*(Expr **)&pSelect->op)" ( identifier , (pointer_expression "*(Expr **)&pSelect->op" * (cast_expression "(Expr **)&pSelect->op" ( (type_descriptor "Expr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pSelect->op" & (field_expression "pSelect->op" identifier -> field_identifier)))) ))) ;) })) (if_statement "if ((ExprList *)pSelect->selFlags != (ExprList *)0x0) {\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }" if (parenthesized_expression "((ExprList *)pSelect->selFlags != (ExprList *)0x0)" ( (binary_expression "(ExprList *)pSelect->selFlags != (ExprList *)0x0" (cast_expression "(ExprList *)pSelect->selFlags" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSelect->selFlags" identifier -> field_identifier)) != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    exprListDeleteNN(db,(ExprList *)pSelect->selFlags);\n  }" { (expression_statement "exprListDeleteNN(db,(ExprList *)pSelect->selFlags);" (call_expression "exprListDeleteNN(db,(ExprList *)pSelect->selFlags)" identifier (argument_list "(db,(ExprList *)pSelect->selFlags)" ( identifier , (cast_expression "(ExprList *)pSelect->selFlags" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSelect->selFlags" identifier -> field_identifier)) ))) ;) })) (if_statement "if ((Expr *)pSelect->iLimit != (Expr *)0x0) {\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }" if (parenthesized_expression "((Expr *)pSelect->iLimit != (Expr *)0x0)" ( (binary_expression "(Expr *)pSelect->iLimit != (Expr *)0x0" (cast_expression "(Expr *)pSelect->iLimit" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSelect->iLimit" identifier -> field_identifier)) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);\n  }" { (expression_statement "sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit);" (call_expression "sqlite3ExprDeleteNN(db,(Expr *)pSelect->iLimit)" identifier (argument_list "(db,(Expr *)pSelect->iLimit)" ( identifier , (cast_expression "(Expr *)pSelect->iLimit" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSelect->iLimit" identifier -> field_identifier)) ))) ;) })) (expression_statement "sqlite3DbFreeNN(db,pSelect);" (call_expression "sqlite3DbFreeNN(db,pSelect)" identifier (argument_list "(db,pSelect)" ( identifier , identifier ))) ;) (labeled_statement "LAB_000f370c:\n  if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }" statement_identifier : (if_statement "if (local_158 != (Table *)0x0) {\n    clearSelect(db,(Select *)local_158,1);\n  }" if (parenthesized_expression "(local_158 != (Table *)0x0)" ( (binary_expression "local_158 != (Table *)0x0" identifier != (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    clearSelect(db,(Select *)local_158,1);\n  }" { (expression_statement "clearSelect(db,(Select *)local_158,1);" (call_expression "clearSelect(db,(Select *)local_158,1)" identifier (argument_list "(db,(Select *)local_158,1)" ( identifier , (cast_expression "(Select *)local_158" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) }))) (if_statement "if (pParse != (Parse *)0x0) {\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }" if (parenthesized_expression "(pParse != (Parse *)0x0)" ( (binary_expression "pParse != (Parse *)0x0" identifier != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3IdListDelete(db,(IdList *)pParse);\n  }" { (expression_statement "sqlite3IdListDelete(db,(IdList *)pParse);" (call_expression "sqlite3IdListDelete(db,(IdList *)pParse)" identifier (argument_list "(db,(IdList *)pParse)" ( identifier , (cast_expression "(IdList *)pParse" ( (type_descriptor "IdList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (if_statement "if (local_17c != (AutoincInfo *)0x0) {\n    sqlite3DbFreeNN(db,local_17c);\n  }" if (parenthesized_expression "(local_17c != (AutoincInfo *)0x0)" ( (binary_expression "local_17c != (AutoincInfo *)0x0" identifier != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3DbFreeNN(db,local_17c);\n  }" { (expression_statement "sqlite3DbFreeNN(db,local_17c);" (call_expression "sqlite3DbFreeNN(db,local_17c)" identifier (argument_list "(db,local_17c)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_000f374a:\n  if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar4 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar4 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar4 == *(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    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) })))
(translation_unit "void FUN_000f3560(int *param_1,uint param_2,int *param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}\n\n" (function_definition "void FUN_000f3560(int *param_1,uint param_2,int *param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" primitive_type (function_declarator "FUN_000f3560(int *param_1,uint param_2,int *param_3)" identifier (parameter_list "(int *param_1,uint param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "short sVar4;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_05;" type_identifier identifier ;) (declaration "int extraout_ECX_06;" primitive_type identifier ;) (declaration "undefined2 uVar28;" type_identifier identifier ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "char *pcVar32;" primitive_type (pointer_declarator "*pcVar32" * identifier) ;) (declaration "ushort uVar33;" type_identifier identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "undefined4 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int *piVar37;" primitive_type (pointer_declarator "*piVar37" * identifier) ;) (declaration "undefined4 *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "undefined8 uVar41;" type_identifier identifier ;) (declaration "undefined8 uVar42;" type_identifier identifier ;) (declaration "int *local_17c;" primitive_type (pointer_declarator "*local_17c" * identifier) ;) (declaration "byte *local_174;" type_identifier (pointer_declarator "*local_174" * identifier) ;) (declaration "uint local_170;" type_identifier identifier ;) (declaration "uint local_16c;" type_identifier identifier ;) (declaration "int *local_168;" primitive_type (pointer_declarator "*local_168" * identifier) ;) (declaration "uint local_160;" type_identifier identifier ;) (declaration "int *local_158;" primitive_type (pointer_declarator "*local_158" * identifier) ;) (declaration "uint local_14c;" type_identifier identifier ;) (declaration "int *local_148;" primitive_type (pointer_declarator "*local_148" * identifier) ;) (declaration "int *local_144;" primitive_type (pointer_declarator "*local_144" * identifier) ;) (declaration "uint local_140;" type_identifier identifier ;) (declaration "undefined4 local_138;" type_identifier identifier ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "uint local_130;" type_identifier identifier ;) (declaration "int local_12c;" primitive_type identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "int local_110;" primitive_type identifier ;) (declaration "int local_f0;" primitive_type identifier ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "byte local_e8 [4];" type_identifier (array_declarator "local_e8 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "int *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined8 *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "undefined8 local_b0;" type_identifier identifier ;) (declaration "int local_a8 [3];" primitive_type (array_declarator "local_a8 [3]" identifier [ number_literal ]) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "undefined1 local_90 [8];" type_identifier (array_declarator "local_90 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined1 local_58 [28];" type_identifier (array_declarator "local_58 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "uVar41 = FUN_0003a401();" (assignment_expression "uVar41 = FUN_0003a401()" identifier = (call_expression "FUN_0003a401()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar23 = (int)((ulonglong)uVar41 >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)uVar41 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar41 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar41 >> 0x20)" ( (binary_expression "(ulonglong)uVar41 >> 0x20" (cast_expression "(ulonglong)uVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar11 = (int *)uVar41;" (assignment_expression "piVar11 = (int *)uVar41" identifier = (cast_expression "(int *)uVar41" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (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 "iVar26 = *piVar11;" (assignment_expression "iVar26 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_158 = extraout_ECX;" (assignment_expression "local_158 = extraout_ECX" identifier = identifier) ;) (if_statement "if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" if (parenthesized_expression "((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0'))" ( (binary_expression "(piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')" (parenthesized_expression "(piVar11[9] == 0)" ( (binary_expression "piVar11[9] == 0" (subscript_expression "piVar11[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar26 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" { (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (if_statement "if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" if (parenthesized_expression "(((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0))" ( (binary_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)" (parenthesized_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0))" ( (binary_expression "(extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" (parenthesized_expression "(extraout_ECX != (int *)0x0)" ( (binary_expression "extraout_ECX != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" ( (binary_expression "(*(byte *)((int)extraout_ECX + 9) & 2) != 0" (parenthesized_expression "(*(byte *)((int)extraout_ECX + 9) & 2)" ( (binary_expression "*(byte *)((int)extraout_ECX + 9) & 2" (pointer_expression "*(byte *)((int)extraout_ECX + 9)" * (cast_expression "(byte *)((int)extraout_ECX + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)extraout_ECX + 9)" ( (binary_expression "(int)extraout_ECX + 9" (cast_expression "(int)extraout_ECX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(extraout_ECX[0xd] == 0)" ( (binary_expression "extraout_ECX[0xd] == 0" (subscript_expression "extraout_ECX[0xd]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" { (expression_statement "local_148 = (int *)*extraout_ECX;" (assignment_expression "local_148 = (int *)*extraout_ECX" identifier = (cast_expression "(int *)*extraout_ECX" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*extraout_ECX" * identifier))) ;) (expression_statement "*extraout_ECX = 0;" (assignment_expression "*extraout_ECX = 0" (pointer_expression "*extraout_ECX" * identifier) = number_literal) ;) (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" identifier = (cast_expression "(int *)FUN_000ed210()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ed210()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_158 = piVar12;" (assignment_expression "local_158 = piVar12" identifier = identifier) ;) (if_statement "if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" { (expression_statement "local_158 = (int *)0x0;" (assignment_expression "local_158 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f3620;" goto statement_identifier ;) })) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;) })) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" identifier = (cast_expression "(int *)FUN_000ed210()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ed210()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" { (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "local_148 = (int *)0x0;" (assignment_expression "local_148 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" statement_identifier : (if_statement "if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" if (parenthesized_expression "(piVar12[0x12] == 0)" ( (binary_expression "piVar12[0x12] == 0" (subscript_expression "piVar12[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }" { (expression_statement "iVar13 = -16000000;" (assignment_expression "iVar13 = -16000000" identifier = number_literal) ;) (expression_statement "local_134 = -1000000;" (assignment_expression "local_134 = -1000000" identifier = number_literal) ;) }) (else_clause "else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" else (compound_statement "{\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" { (expression_statement "local_134 = FUN_00046080();" (assignment_expression "local_134 = FUN_00046080()" identifier = (call_expression "FUN_00046080()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar13 = local_134 << 4;" (assignment_expression "iVar13 = local_134 << 4" identifier = (binary_expression "local_134 << 4" identifier << number_literal)) ;) })))) (expression_statement "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));" (assignment_expression "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" identifier = (call_expression "FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" identifier (argument_list "(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" ( number_literal , (pointer_expression "*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" * (cast_expression "(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar26 + 0x10) + iVar13)" ( (binary_expression "*(int *)(iVar26 + 0x10) + iVar13" (pointer_expression "*(int *)(iVar26 + 0x10)" * (cast_expression "(int *)(iVar26 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x10)" ( (binary_expression "iVar26 + 0x10" identifier + number_literal) )))) + identifier) )))) )))) ;) (if_statement "if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" { (labeled_statement "LAB_000f366b:\n      local_17c = (int *)0x0;" statement_identifier : (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "LAB_000f3673:\n      FUN_000638a0();" statement_identifier : (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }" if (parenthesized_expression "(local_148 != (int *)0x0)" ( (binary_expression "local_148 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3688:\n        FUN_00063e30();\n      }" { (labeled_statement "LAB_000f3688:\n        FUN_00063e30();" statement_identifier : (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;)) })) (goto_statement "goto LAB_000f36a8;" goto statement_identifier ;) })) (expression_statement "uVar6 = piVar12[9];" (assignment_expression "uVar6 = piVar12[9]" identifier = (subscript_expression "piVar12[9]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = FUN_00049a60(0,local_e8);" (assignment_expression "iVar14 = FUN_00049a60(0,local_e8)" identifier = (call_expression "FUN_00049a60(0,local_e8)" identifier (argument_list "(0,local_e8)" ( number_literal , identifier )))) ;) (expression_statement "iVar13 = piVar12[3];" (assignment_expression "iVar13 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = FUN_000d9b60();" (assignment_expression "iVar15 = FUN_000d9b60()" identifier = (call_expression "FUN_000d9b60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;" if (parenthesized_expression "(((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))))" ( (binary_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar15 = FUN_0008b7b0(), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0008b7b0(), iVar15 != 0" (assignment_expression "iVar15 = FUN_0008b7b0()" identifier = (call_expression "FUN_0008b7b0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" ( (parenthesized_expression "(local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))" ( (comma_expression "local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (assignment_expression "local_144 = (int *)piVar11[2]" identifier = (cast_expression "(int *)piVar11[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ]))) , (binary_expression "local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (binary_expression "local_144 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" ( (comma_expression "local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0" (assignment_expression "local_144 = (int *)FUN_00073350()" identifier = (cast_expression "(int *)FUN_00073350()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073350()" identifier (argument_list "()" ( ))))) , (binary_expression "local_144 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (if_statement "if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" { (expression_statement "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;" (assignment_expression "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" * (cast_expression "(byte *)((int)local_144 + 0x8d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_144 + 0x8d)" ( (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" * (cast_expression "(byte *)((int)local_144 + 0x8d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_144 + 0x8d)" ( (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "FUN_000bcbf0();" (call_expression "FUN_000bcbf0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0))))" ( (binary_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" (parenthesized_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0))" ( (binary_expression "(param_1 == (int *)0x0) && (local_158 != (int *)0x0)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" ( (parenthesized_expression "(piVar11[0x41] == 0 && (local_158[0x10] == 0))" ( (binary_expression "piVar11[0x41] == 0 && (local_158[0x10] == 0)" (binary_expression "piVar11[0x41] == 0" (subscript_expression "piVar11[0x41]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(local_158[0x10] == 0)" ( (binary_expression "local_158[0x10] == 0" (subscript_expression "local_158[0x10]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" { (expression_statement "iVar15 = *piVar11;" (assignment_expression "iVar15 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar16 = FUN_000460a0();" (assignment_expression "iVar16 = FUN_000460a0()" identifier = (call_expression "FUN_000460a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;" if (parenthesized_expression "((iVar16 != 0) || (piVar12[0xe] != 0))" ( (binary_expression "(iVar16 != 0) || (piVar12[0xe] != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) || (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "local_14c = param_2;" (assignment_expression "local_14c = param_2" identifier = identifier) ;) (if_statement "if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }" if (parenthesized_expression "((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))))" ( (binary_expression "(param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" (parenthesized_expression "(param_2 == 0xb)" ( (binary_expression "param_2 == 0xb" identifier == number_literal) )) && (parenthesized_expression "((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" ( (parenthesized_expression "(local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))" ( (comma_expression "local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (assignment_expression "local_14c = 2" identifier = number_literal) , (binary_expression "-1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (binary_expression "-1 < (short)piVar12[10]" number_literal < (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) && (parenthesized_expression "(local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" ( (comma_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb" (assignment_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc)" identifier = (binary_expression "(uint)*(byte *)(piVar12 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar12 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 0xc)" ( (binary_expression "piVar12 + 0xc" identifier + number_literal) ))))) , (binary_expression "local_14c == 0xb" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n        local_14c = 2;\n      }" { (expression_statement "local_14c = 2;" (assignment_expression "local_14c = 2" identifier = number_literal) ;) })) (if_statement "if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;" if (parenthesized_expression "((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))))" ( (binary_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" (parenthesized_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))))" ( (binary_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" (parenthesized_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))))" ( (binary_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" (parenthesized_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            )" ( (binary_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)" (parenthesized_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0))" ( (binary_expression "(*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)" (parenthesized_expression "(*(int *)local_158[8] != 1)" ( (binary_expression "*(int *)local_158[8] != 1" (pointer_expression "*(int *)local_158[8]" * (cast_expression "(int *)local_158[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_158[8]" identifier [ number_literal ]))) != number_literal) )) || (parenthesized_expression "(((int *)local_158[8])[7] != 0)" ( (binary_expression "((int *)local_158[8])[7] != 0" (subscript_expression "((int *)local_158[8])[7]" (parenthesized_expression "((int *)local_158[8])" ( (cast_expression "(int *)local_158[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_158[8]" identifier [ number_literal ])) )) [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(local_158[9] != 0)" ( (binary_expression "local_158[9] != 0" (subscript_expression "local_158[9]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" ( (parenthesized_expression "((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))" ( (binary_expression "(local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" (parenthesized_expression "(local_158[0xc] != 0 || (local_158[10] != 0))" ( (binary_expression "local_158[0xc] != 0 || (local_158[10] != 0)" (binary_expression "local_158[0xc] != 0" (subscript_expression "local_158[0xc]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(local_158[10] != 0)" ( (binary_expression "local_158[10] != 0" (subscript_expression "local_158[10]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" ( (parenthesized_expression "(local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))" ( (binary_expression "local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" (binary_expression "local_158[0xf] != 0" (subscript_expression "local_158[0xf]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" ( (parenthesized_expression "(local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))" ( (binary_expression "local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)" (binary_expression "local_158[0xd] != 0" (subscript_expression "local_158[0xd]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*(byte *)(local_158 + 2) & 1) != 0)" ( (binary_expression "(*(byte *)(local_158 + 2) & 1) != 0" (parenthesized_expression "(*(byte *)(local_158 + 2) & 1)" ( (binary_expression "*(byte *)(local_158 + 2) & 1" (pointer_expression "*(byte *)(local_158 + 2)" * (cast_expression "(byte *)(local_158 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_158 + 2)" ( (binary_expression "local_158 + 2" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) ))) )) || (parenthesized_expression "((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" ( (parenthesized_expression "(*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))" ( (binary_expression "*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" (binary_expression "*(int *)*local_158 != 1" (pointer_expression "*(int *)*local_158" * (cast_expression "(int *)*local_158" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_158" * identifier))) != number_literal) || (parenthesized_expression "((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" ( (parenthesized_expression "(*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))" ( (binary_expression "*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" (binary_expression "*(char *)((int *)*local_158)[1] != -0x58" (pointer_expression "*(char *)((int *)*local_158)[1]" * (cast_expression "(char *)((int *)*local_158)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)*local_158)[1]" (parenthesized_expression "((int *)*local_158)" ( (cast_expression "(int *)*local_158" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_158" * identifier)) )) [ number_literal ]))) != number_literal) || (parenthesized_expression "(puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" ( (comma_expression "puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0" (assignment_expression "puVar17 = (undefined4 *)FUN_000eb150()" identifier = (cast_expression "(undefined4 *)FUN_000eb150()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000eb150()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar17 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) || (parenthesized_expression "(((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" ( (parenthesized_expression "((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))" ( (binary_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" (parenthesized_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12]))" ( (binary_expression "puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])" (binary_expression "puVar17[7] == piVar12[7]" (subscript_expression "puVar17[7]" identifier [ number_literal ]) == (subscript_expression "piVar12[7]" identifier [ number_literal ])) && (parenthesized_expression "(puVar17[0x12] == piVar12[0x12])" ( (binary_expression "puVar17[0x12] == piVar12[0x12]" (subscript_expression "puVar17[0x12]" identifier [ number_literal ]) == (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" ( (parenthesized_expression "((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))" ( (binary_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" (parenthesized_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0))" ( (binary_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)" (parenthesized_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0))" ( (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)" (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" (parenthesized_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1)" ( (binary_expression "((byte)((uint)piVar12[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)piVar12[9] >> 5) ^ 1)" ( (binary_expression "(byte)((uint)piVar12[9] >> 5) ^ 1" (call_expression "(byte)((uint)piVar12[9] >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)piVar12[9] >> 5)" ( (binary_expression "(uint)piVar12[9] >> 5" (cast_expression "(uint)piVar12[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[9]" identifier [ number_literal ])) >> number_literal) ))) ^ number_literal) )) & number_literal) )) != (parenthesized_expression "(((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" ( (binary_expression "((byte)((uint)puVar17[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)puVar17[9] >> 5) ^ 1)" ( (binary_expression "(byte)((uint)puVar17[9] >> 5) ^ 1" (call_expression "(byte)((uint)puVar17[9] >> 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)puVar17[9] >> 5)" ( (binary_expression "(uint)puVar17[9] >> 5" (cast_expression "(uint)puVar17[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar17[9]" identifier [ number_literal ])) >> number_literal) ))) ^ number_literal) )) & number_literal) ))) || (parenthesized_expression "(puVar17[0xe] != 0)" ( (binary_expression "puVar17[0xe] != 0" (subscript_expression "puVar17[0xe]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar17[3] != 0)" ( (binary_expression "puVar17[3] != 0" (subscript_expression "puVar17[3]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" ( (parenthesized_expression "(sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))" ( (comma_expression "sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (assignment_expression "sVar4 = *(short *)((int)piVar12 + 0x2a)" identifier = (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a)" identifier != (pointer_expression "*(short *)((int)puVar17 + 0x2a)" * (cast_expression "(short *)((int)puVar17 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 0x2a)" ( (binary_expression "(int)puVar17 + 0x2a" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) || (parenthesized_expression "(uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" ( (comma_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (assignment_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10)" identifier = (binary_expression "(uint)*(ushort *)(puVar17 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(puVar17 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 10)" ( (binary_expression "puVar17 + 10" identifier + number_literal) ))))) , (binary_expression "*(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (pointer_expression "*(ushort *)(piVar12 + 10)" * (cast_expression "(ushort *)(piVar12 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 10)" ( (binary_expression "piVar12 + 10" identifier + number_literal) )))) != (pointer_expression "*(ushort *)(puVar17 + 10)" * (cast_expression "(ushort *)(puVar17 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 10)" ( (binary_expression "puVar17 + 10" identifier + number_literal) )))))) )))) )) ))) )) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (for_statement "for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" for ( (assignment_expression "iVar16 = 0" identifier = number_literal) ; (binary_expression "iVar16 < sVar4" identifier < identifier) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" { (expression_statement "iVar18 = piVar12[1] + iVar16 * 0x10;" (assignment_expression "iVar18 = piVar12[1] + iVar16 * 0x10" identifier = (binary_expression "piVar12[1] + iVar16 * 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + (binary_expression "iVar16 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar27 = iVar16 * 0x10 + puVar17[1];" (assignment_expression "uVar27 = iVar16 * 0x10 + puVar17[1]" identifier = (binary_expression "iVar16 * 0x10 + puVar17[1]" (binary_expression "iVar16 * 0x10" identifier * number_literal) + (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;" if (parenthesized_expression "(*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd))" ( (binary_expression "*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)" (pointer_expression "*(char *)(iVar18 + 0xd)" * (cast_expression "(char *)(iVar18 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xd)" ( (binary_expression "iVar18 + 0xd" identifier + number_literal) )))) != (pointer_expression "*(char *)(uVar27 + 0xd)" * (cast_expression "(char *)(uVar27 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 0xd)" ( (binary_expression "uVar27 + 0xd" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "iVar22 = *(int *)(uVar27 + 8);" (assignment_expression "iVar22 = *(int *)(uVar27 + 8)" identifier = (pointer_expression "*(int *)(uVar27 + 8)" * (cast_expression "(int *)(uVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 8)" ( (binary_expression "uVar27 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" if (parenthesized_expression "(*(int *)(iVar18 + 8) != 0)" ( (binary_expression "*(int *)(iVar18 + 8) != 0" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" { (if_statement "if (iVar22 == 0) goto LAB_000f380e;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "iVar22 = FUN_000446c0();" (assignment_expression "iVar22 = FUN_000446c0()" identifier = (call_expression "FUN_000446c0()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;" if (parenthesized_expression "((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))" ( (binary_expression "(iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" ( (parenthesized_expression "(*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))" ( (binary_expression "*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')" (binary_expression "*(char *)(iVar18 + 0xc) != '\0'" (pointer_expression "*(char *)(iVar18 + 0xc)" * (cast_expression "(char *)(iVar18 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(uVar27 + 0xc) == '\0')" ( (binary_expression "*(char *)(uVar27 + 0xc) == '\0'" (pointer_expression "*(char *)(uVar27 + 0xc)" * (cast_expression "(char *)(uVar27 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 0xc)" ( (binary_expression "uVar27 + 0xc" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (expression_statement "uVar35 = uVar27;" (assignment_expression "uVar35 = uVar27" identifier = identifier) ;) (if_statement "if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" if (parenthesized_expression "(0 < iVar16)" ( (binary_expression "0 < iVar16" number_literal < identifier) )) (compound_statement "{\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" { (expression_statement "iVar18 = *(int *)(iVar18 + 4);" (assignment_expression "iVar18 = *(int *)(iVar18 + 4)" identifier = (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) ;) (if_statement "if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;" if (parenthesized_expression "(((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))))" ( (binary_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" (parenthesized_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0))" ( (binary_expression "(iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) != (parenthesized_expression "(*(int *)(uVar27 + 4) == 0)" ( (binary_expression "*(int *)(uVar27 + 4) == 0" (pointer_expression "*(int *)(uVar27 + 4)" * (cast_expression "(int *)(uVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 4)" ( (binary_expression "uVar27 + 4" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" ( (parenthesized_expression "(uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))" ( (comma_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" identifier = (call_expression "CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" identifier (argument_list "((int3)(uVar27 >> 8),iVar18 == 0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "iVar18 == 0" identifier == number_literal) )))) , (binary_expression "iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" ( (comma_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" identifier = (call_expression "strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" identifier (argument_list "(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" ( (pointer_expression "*(char **)(iVar18 + 8)" * (cast_expression "(char **)(iVar18 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , (pointer_expression "*(char **)(*(int *)(uVar27 + 4) + 8)" * (cast_expression "(char **)(*(int *)(uVar27 + 4) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(uVar27 + 4) + 8)" ( (binary_expression "*(int *)(uVar27 + 4) + 8" (pointer_expression "*(int *)(uVar27 + 4)" * (cast_expression "(int *)(uVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 + 4)" ( (binary_expression "uVar27 + 4" identifier + number_literal) )))) + number_literal) )))) )))) , (comma_expression "uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "uVar35 = unaff_EDI + 0xc78c1" identifier = (binary_expression "unaff_EDI + 0xc78c1" identifier + number_literal)) , (binary_expression "iVar18 != 0" identifier != number_literal))) )))) )) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) })) })) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (for_statement "for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" for ( (assignment_expression "iVar16 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ; (binary_expression "iVar16 != 0" identifier != number_literal) ; (assignment_expression "iVar16 = *(int *)(iVar16 + 0x14)" identifier = (pointer_expression "*(int *)(iVar16 + 0x14)" * (cast_expression "(int *)(iVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" { (expression_statement "uVar35 = puVar17[2];" (assignment_expression "uVar35 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }" if (parenthesized_expression "(*(char *)(iVar16 + 0x36) != '\0')" ( (binary_expression "*(char *)(iVar16 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar16 + 0x36)" * (cast_expression "(char *)(iVar16 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x36)" ( (binary_expression "iVar16 + 0x36" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_170 = 1;\n        }" { (expression_statement "local_170 = 1;" (assignment_expression "local_170 = 1" identifier = number_literal) ;) })) (while_statement "while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" { (if_statement "if (uVar35 == 0) goto LAB_000f380e;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;" if (parenthesized_expression "(((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0))" ( (binary_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)" (parenthesized_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)))" ( (binary_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" (parenthesized_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32))" ( (binary_expression "*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)" (pointer_expression "*(short *)(iVar16 + 0x32)" * (cast_expression "(short *)(iVar16 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x32)" ( (binary_expression "iVar16 + 0x32" identifier + number_literal) )))) == (pointer_expression "*(short *)(uVar35 + 0x32)" * (cast_expression "(short *)(uVar35 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x32)" ( (binary_expression "uVar35 + 0x32" identifier + number_literal) ))))) )) && (parenthesized_expression "(*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" ( (binary_expression "*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)" (pointer_expression "*(char *)(iVar16 + 0x36)" * (cast_expression "(char *)(iVar16 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x36)" ( (binary_expression "iVar16 + 0x36" identifier + number_literal) )))) == (pointer_expression "*(char *)(uVar35 + 0x36)" * (cast_expression "(char *)(uVar35 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x36)" ( (binary_expression "uVar35 + 0x36" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(iVar18 = FUN_00087c20(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_00087c20(), iVar18 != 0" (assignment_expression "iVar18 = FUN_00087c20()" identifier = (call_expression "FUN_00087c20()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar35 = *(uint *)(uVar35 + 0x14);" (assignment_expression "uVar35 = *(uint *)(uVar35 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar35 + 0x14)" * (cast_expression "(uint *)(uVar35 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 0x14)" ( (binary_expression "uVar35 + 0x14" identifier + number_literal) ))))) ;) })) })) (if_statement "if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;" if (parenthesized_expression "((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0))" ( (binary_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" (parenthesized_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))))" ( (binary_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" (parenthesized_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0))" ( (binary_expression "(piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)" (parenthesized_expression "(piVar12[6] != 0)" ( (binary_expression "piVar12[6] != 0" (subscript_expression "piVar12[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar16 = FUN_000879d0(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_000879d0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000879d0()" identifier = (call_expression "FUN_000879d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" ( (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))" ( (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)" (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000)" ( (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x4000" (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(piVar12[4] != 0)" ( (binary_expression "piVar12[4] != 0" (subscript_expression "piVar12[4]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" ( (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x80)" ( (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x80" (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;)) (if_statement "if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }" if (parenthesized_expression "(puVar17[0x12] == 0)" ( (binary_expression "puVar17[0x12] == 0" (subscript_expression "puVar17[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_140 = 0xfff0bdc0;\n      }" { (expression_statement "local_140 = 0xfff0bdc0;" (assignment_expression "local_140 = 0xfff0bdc0" identifier = number_literal) ;) }) (else_clause "else {\n        local_140 = FUN_00046080();\n      }" else (compound_statement "{\n        local_140 = FUN_00046080();\n      }" { (expression_statement "local_140 = FUN_00046080();" (assignment_expression "local_140 = FUN_00046080()" identifier = (call_expression "FUN_00046080()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "piVar34 = (int *)piVar11[2];" (assignment_expression "piVar34 = (int *)piVar11[2]" identifier = (cast_expression "(int *)piVar11[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }" if (parenthesized_expression "(piVar34 == (int *)0x0)" ( (binary_expression "piVar34 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar34 = (int *)FUN_00073350();\n      }" { (expression_statement "piVar34 = (int *)FUN_00073350();" (assignment_expression "piVar34 = (int *)FUN_00073350()" identifier = (cast_expression "(int *)FUN_00073350()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073350()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "FUN_000bca90();" (call_expression "FUN_000bca90()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_12c = 0;" (assignment_expression "local_12c = 0" identifier = number_literal) ;) (expression_statement "piVar11[10] = piVar11[10] + 2;" (assignment_expression "piVar11[10] = piVar11[10] + 2" (subscript_expression "piVar11[10]" identifier [ number_literal ]) = (binary_expression "piVar11[10] + 2" (subscript_expression "piVar11[10]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }" if (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" ( (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" * (cast_expression "(byte *)(piVar12 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 9)" ( (binary_expression "piVar12 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_12c = FUN_00055fd0();\n      }" { (expression_statement "local_12c = FUN_00055fd0();" (assignment_expression "local_12c = FUN_00055fd0()" identifier = (call_expression "FUN_00055fd0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x13)" * (cast_expression "(char *)((int)piVar11 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }" { (expression_statement "local_168 = (int *)(piVar11[0xb] + 1);" (assignment_expression "local_168 = (int *)(piVar11[0xb] + 1)" identifier = (cast_expression "(int *)(piVar11[0xb] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[0xb] + 1)" ( (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar11[0xb] = (int)local_168;" (assignment_expression "piVar11[0xb] = (int)local_168" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (cast_expression "(int)local_168" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;" statement_identifier : (expression_statement "uVar35 = piVar11[0xb] + 1;" (assignment_expression "uVar35 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "piVar11[0xb] = uVar35;" (assignment_expression "piVar11[0xb] = uVar35" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_16c = uVar35;" (assignment_expression "local_16c = uVar35" identifier = identifier) ;) }) (else_clause "else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" else (compound_statement "{\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" { (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" identifier = (binary_expression "cVar2 - 1" identifier - number_literal)) ;) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_168 = (int *)piVar11[bVar1 + 0x24];" (assignment_expression "local_168 = (int *)piVar11[bVar1 + 0x24]" identifier = (cast_expression "(int *)piVar11[bVar1 + 0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[bVar1 + 0x24]" identifier [ (binary_expression "bVar1 + 0x24" identifier + number_literal) ]))) ;) (if_statement "if (bVar1 == 0) goto LAB_000f592a;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f592a;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar2 - 2U" identifier - number_literal)) ;) (expression_statement "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier = (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier [ (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 2U)" ( (binary_expression "cVar2 - 2U" identifier - number_literal) ))) + number_literal) ])) ;) }))) (expression_statement "FUN_00090f40(piVar12,0x6e,uVar35,uVar35);" (call_expression "FUN_00090f40(piVar12,0x6e,uVar35,uVar35)" identifier (argument_list "(piVar12,0x6e,uVar35,uVar35)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar16 = extraout_ECX_03;" (assignment_expression "iVar16 = extraout_ECX_03" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }" { (if_statement "if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" if (parenthesized_expression "((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1))))" ( (binary_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))" (parenthesized_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0))" ( (binary_expression "((short)piVar12[10] < 0) && (piVar12[2] != 0)" (parenthesized_expression "((short)piVar12[10] < 0)" ( (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])) < number_literal) )) && (parenthesized_expression "(piVar12[2] != 0)" ( (binary_expression "piVar12[2] != 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_170 != 0 || (1 < local_14c - 1)))" ( (parenthesized_expression "(local_170 != 0 || (1 < local_14c - 1))" ( (binary_expression "local_170 != 0 || (1 < local_14c - 1)" (binary_expression "local_170 != 0" identifier != number_literal) || (parenthesized_expression "(1 < local_14c - 1)" ( (binary_expression "1 < local_14c - 1" number_literal < (binary_expression "local_14c - 1" identifier - number_literal)) ))) )) ))) )) (compound_statement "{\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" { (expression_statement "uVar35 = FUN_00073150(0);" (assignment_expression "uVar35 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_170 = FUN_00073150(0);" (assignment_expression "local_170 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }" if (parenthesized_expression "((int)uVar35 < 0)" ( (binary_expression "(int)uVar35 < 0" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar35 = piVar34[0x1a] - 1;\n          }" { (expression_statement "uVar35 = piVar34[0x1a] - 1;" (assignment_expression "uVar35 = piVar34[0x1a] - 1" identifier = (binary_expression "piVar34[0x1a] - 1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) - number_literal)) ;) })) (expression_statement "iVar16 = *piVar34;" (assignment_expression "iVar16 = *piVar34" identifier = (pointer_expression "*piVar34" * identifier)) ;) (expression_statement "iVar18 = unaff_EDI + 0xc9455;" (assignment_expression "iVar18 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" if (parenthesized_expression "(*(char *)(iVar16 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar16 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar16 + 0x4d)" * (cast_expression "(char *)(iVar16 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x4d)" ( (binary_expression "iVar16 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" { (expression_statement "uVar35 = uVar35 * 0x18;" (assignment_expression "uVar35 = uVar35 * 0x18" identifier = (binary_expression "uVar35 * 0x18" identifier * number_literal)) ;) (expression_statement "iVar18 = piVar34[0x19] + uVar35;" (assignment_expression "iVar18 = piVar34[0x19] + uVar35" identifier = (binary_expression "piVar34[0x19] + uVar35" (subscript_expression "piVar34[0x19]" identifier [ number_literal ]) + identifier)) ;) })) (expression_statement "*(int *)(iVar18 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar18 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n        local_170 = 0;\n      }" else (compound_statement "{\n        local_170 = 0;\n      }" { (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) }))) (if_statement "if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" if (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) == 0)" ( (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) == 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" ( (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" * (cast_expression "(byte *)(puVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" { (expression_statement "FUN_00090f40(puVar17,0x6d,iVar16,iVar16);" (call_expression "FUN_00090f40(puVar17,0x6d,iVar16,iVar16)" identifier (argument_list "(puVar17,0x6d,iVar16,iVar16)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "local_130 = FUN_00073150(0);" (assignment_expression "local_130 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" if (parenthesized_expression "((short)piVar12[10] < 0)" ( (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }" { (if_statement "if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" if (parenthesized_expression "(piVar12[2] == 0)" ( (binary_expression "piVar12[2] == 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" identifier = identifier) ;) }) (else_clause "else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" else (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" identifier = identifier) ;) }))) }) (else_clause "else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" else (compound_statement "{\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" { (expression_statement "iVar18 = FUN_00073150(local_16c);" (assignment_expression "iVar18 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) (expression_statement "iVar16 = FUN_00072f80(0,local_16c);" (assignment_expression "iVar16 = FUN_00072f80(0,local_16c)" identifier = (call_expression "FUN_00072f80(0,local_16c)" identifier (argument_list "(0,local_16c)" ( number_literal , identifier )))) ;) (expression_statement "FUN_00086c60();" (call_expression "FUN_00086c60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar16 = piVar34[0x1a] + -1;\n          }" { (expression_statement "iVar16 = piVar34[0x1a] + -1;" (assignment_expression "iVar16 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" { (expression_statement "iVar22 = piVar34[0x19] + iVar16 * 0x18;" (assignment_expression "iVar22 = piVar34[0x19] + iVar16 * 0x18" identifier = (binary_expression "piVar34[0x19] + iVar16 * 0x18" (subscript_expression "piVar34[0x19]" identifier [ number_literal ]) + (binary_expression "iVar16 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar22 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }" if (parenthesized_expression "(0 < local_12c)" ( (binary_expression "0 < local_12c" number_literal < identifier) )) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n          }" { (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" identifier = (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier )))) ;) })) }))) (expression_statement "uVar28 = 0x29;" (assignment_expression "uVar28 = 0x29" identifier = number_literal) ;) (expression_statement "FUN_00072f80(local_168,1,iVar22,iVar22);" (call_expression "FUN_00072f80(local_168,1,iVar22,iVar22)" identifier (argument_list "(local_168,1,iVar22,iVar22)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" { (expression_statement "uVar28 = 0x39;" (assignment_expression "uVar28 = 0x39" identifier = number_literal) ;) (expression_statement "iVar16 = FUN_00073150(0);" (assignment_expression "iVar16 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) })) (expression_statement "FUN_00072f80(local_168,local_16c,iVar16,iVar16);" (call_expression "FUN_00072f80(local_168,local_16c,iVar16,iVar16)" identifier (argument_list "(local_168,local_16c,iVar16,iVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00062750(0xfffffffa);" (call_expression "FUN_00062750(0xfffffffa)" identifier (argument_list "(0xfffffffa)" ( number_literal ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" { (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00073150(iVar18);" (call_expression "FUN_00073150(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" else (compound_statement "{\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" { (expression_statement "FUN_00072d00(1,*piVar12,uVar35,uVar35);" (call_expression "FUN_00072d00(1,*piVar12,uVar35,uVar35)" identifier (argument_list "(1,*piVar12,uVar35,uVar35)" ( number_literal , (pointer_expression "*piVar12" * identifier) , identifier , identifier ))) ;) (expression_statement "FUN_00072d00(0,*puVar17);" (call_expression "FUN_00072d00(0,*puVar17)" identifier (argument_list "(0,*puVar17)" ( number_literal , (pointer_expression "*puVar17" * identifier) ))) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) }))) (for_statement "for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" for ( (assignment_expression "puVar38 = (undefined4 *)piVar12[2]" identifier = (cast_expression "(undefined4 *)piVar12[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[2]" identifier [ number_literal ]))) ; (binary_expression "puVar38 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar38 = (undefined4 *)puVar38[5]" identifier = (cast_expression "(undefined4 *)puVar38[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar38[5]" identifier [ number_literal ]))) ) (compound_statement "{\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" { (expression_statement "puVar36 = (undefined4 *)puVar17[2];" (assignment_expression "puVar36 = (undefined4 *)puVar17[2]" identifier = (cast_expression "(undefined4 *)puVar17[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[2]" identifier [ number_literal ]))) ;) (while_statement "while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" { (if_statement "if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }" if (parenthesized_expression "(puVar36 == (undefined4 *)0x0)" ( (binary_expression "puVar36 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_000157bf();\n            return;\n          }" { (expression_statement "FUN_000157bf();" (call_expression "FUN_000157bf()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;" if (parenthesized_expression "(((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0))" ( (binary_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)" (parenthesized_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)))" ( (binary_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" (parenthesized_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32))" ( (binary_expression "*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)" (pointer_expression "*(short *)((int)puVar38 + 0x32)" * (cast_expression "(short *)((int)puVar38 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x32)" ( (binary_expression "(int)puVar38 + 0x32" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(short *)((int)puVar36 + 0x32)" * (cast_expression "(short *)((int)puVar36 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 0x32)" ( (binary_expression "(int)puVar36 + 0x32" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" ( (binary_expression "*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)" (pointer_expression "*(char *)((int)puVar38 + 0x36)" * (cast_expression "(char *)((int)puVar38 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x36)" ( (binary_expression "(int)puVar38 + 0x36" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (pointer_expression "*(char *)((int)puVar36 + 0x36)" * (cast_expression "(char *)((int)puVar36 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + 0x36)" ( (binary_expression "(int)puVar36 + 0x36" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) && (parenthesized_expression "(iVar16 = FUN_00087c20(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_00087c20(), iVar16 != 0" (assignment_expression "iVar16 = FUN_00087c20()" identifier = (call_expression "FUN_00087c20()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar36 = (undefined4 *)puVar36[5];" (assignment_expression "puVar36 = (undefined4 *)puVar36[5]" identifier = (cast_expression "(undefined4 *)puVar36[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar36[5]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);" (call_expression "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" identifier (argument_list "(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" ( (subscript_expression "puVar36[0xb]" identifier [ number_literal ]) , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" identifier (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" ( identifier , (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" & identifier) + identifier) , (pointer_expression "*puVar36" * identifier) ))) ;) (expression_statement "FUN_00072f80(puVar38[0xb],local_134);" (call_expression "FUN_00072f80(puVar38[0xb],local_134)" identifier (argument_list "(puVar38[0xb],local_134)" ( (subscript_expression "puVar38[0xb]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" { (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = number_literal) ;) })) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" identifier (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" ( identifier , (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" & identifier) + identifier) , (pointer_expression "*puVar38" * identifier) , identifier ))) ;) (expression_statement "local_14c = FUN_00073150(0);" (assignment_expression "local_14c = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "FUN_00072f80(local_168,1);" (call_expression "FUN_00072f80(local_168,1)" identifier (argument_list "(local_168,1)" ( identifier , number_literal ))) ;) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" * (cast_expression "(byte *)(iVar15 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" { (expression_statement "uVar5 = *(ushort *)(puVar36 + 0xd);" (assignment_expression "uVar5 = *(ushort *)(puVar36 + 0xd)" identifier = (pointer_expression "*(ushort *)(puVar36 + 0xd)" * (cast_expression "(ushort *)(puVar36 + 0xd)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0xd)" ( (binary_expression "puVar36 + 0xd" identifier + number_literal) ))))) ;) (for_statement "for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" for ( (assignment_expression "uVar35 = 0" identifier = number_literal) ; (binary_expression "(int)uVar35 < (int)(uint)uVar5" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uint)uVar5" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ; (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ) (compound_statement "{\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" { (if_statement "if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" if (parenthesized_expression "((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))" ( (binary_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0)" (parenthesized_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0)" ( (binary_expression "*(int *)(puVar36[8] + uVar35 * 4) == 0" (pointer_expression "*(int *)(puVar36[8] + uVar35 * 4)" * (cast_expression "(int *)(puVar36[8] + uVar35 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36[8] + uVar35 * 4)" ( (binary_expression "puVar36[8] + uVar35 * 4" (subscript_expression "puVar36[8]" identifier [ number_literal ]) + (binary_expression "uVar35 * 4" identifier * number_literal)) )))) == number_literal) )) || (parenthesized_expression "(iVar16 = FUN_000446c0(), iVar16 != 0)" ( (comma_expression "iVar16 = FUN_000446c0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000446c0()" identifier = (call_expression "FUN_000446c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" { (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000f55d2;" goto statement_identifier ;) })) })) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (if_statement "if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" if (parenthesized_expression "(uVar35 == uVar5)" ( (binary_expression "uVar35 == uVar5" identifier == identifier) )) (compound_statement "{\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" { (expression_statement "uVar33 = 0x10;" (assignment_expression "uVar33 = 0x10" identifier = number_literal) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) })) (labeled_statement "LAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" statement_identifier : (if_statement "if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" if (parenthesized_expression "(((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2))" ( (binary_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0)" ( (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) != 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" ( (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" * (cast_expression "(byte *)(puVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" ( (binary_expression "(*(byte *)((int)puVar38 + 0x37) & 3) == 2" (parenthesized_expression "(*(byte *)((int)puVar38 + 0x37) & 3)" ( (binary_expression "*(byte *)((int)puVar38 + 0x37) & 3" (pointer_expression "*(byte *)((int)puVar38 + 0x37)" * (cast_expression "(byte *)((int)puVar38 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar38 + 0x37)" ( (binary_expression "(int)puVar38 + 0x37" (cast_expression "(int)puVar38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar33 = uVar33 | 1;\n        }" { (expression_statement "uVar33 = uVar33 | 1;" (assignment_expression "uVar33 = uVar33 | 1" identifier = (binary_expression "uVar33 | 1" identifier | number_literal)) ;) }))) (expression_statement "FUN_00073150(local_168);" (call_expression "FUN_00073150(local_168)" identifier (argument_list "(local_168)" ( identifier ))) ;) (if_statement "if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" if (parenthesized_expression "(0 < piVar34[0x1a])" ( (binary_expression "0 < piVar34[0x1a]" number_literal < (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" { (expression_statement "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;" (assignment_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8" (pointer_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" * (cast_expression "(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" ( (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ])) + number_literal) )))) = (binary_expression "uVar33 | 8" identifier | number_literal)) ;) })) (expression_statement "FUN_00073150(local_14c + 1);" (call_expression "FUN_00073150(local_14c + 1)" identifier (argument_list "(local_14c + 1)" ( (binary_expression "local_14c + 1" identifier + number_literal) ))) ;) (if_statement "if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_14c < 0)" ( (binary_expression "(int)local_14c < 0" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_14c = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_14c = piVar34[0x1a] + -1;" (assignment_expression "local_14c = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar16 = unaff_EDI + 0xc9455;" (assignment_expression "iVar16 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar16 = local_14c * 0x18 + piVar34[0x19];" (assignment_expression "iVar16 = local_14c * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_14c * 0x18 + piVar34[0x19]" (binary_expression "local_14c * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar16 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar16 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (if_statement "if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" { (if_statement "if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_130 < 0)" ( (binary_expression "(int)local_130 < 0" (cast_expression "(int)local_130" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_130 = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_130 = piVar34[0x1a] + -1;" (assignment_expression "local_130 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar15 = local_130 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_130 * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_130 * 0x18 + piVar34[0x19]" (binary_expression "local_130 * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) })) (if_statement "if (local_16c != 0) {\n        FUN_00045e10();\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00045e10();\n      }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }" if (parenthesized_expression "(local_168 != (int *)0x0)" ( (binary_expression "local_168 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00045e10();\n      }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" if (parenthesized_expression "(local_170 != 0)" ( (binary_expression "local_170 != 0" identifier != number_literal) )) (compound_statement "{\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" { (if_statement "if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }" if (parenthesized_expression "(piVar11[0x1c] != 0)" ( (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_000916b0();\n        }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }" if (parenthesized_expression "((int)local_170 < 0)" ( (binary_expression "(int)local_170 < 0" (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_170 = piVar34[0x1a] + -1;\n        }" { (expression_statement "local_170 = piVar34[0x1a] + -1;" (assignment_expression "local_170 = piVar34[0x1a] + -1" identifier = (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" if (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" * (cast_expression "(char *)(*piVar34 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + 0x4d)" ( (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" { (expression_statement "iVar15 = local_170 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_170 * 0x18 + piVar34[0x19]" identifier = (binary_expression "local_170 * 0x18 + piVar34[0x19]" (binary_expression "local_170 * 0x18" identifier * number_literal) + (subscript_expression "piVar34[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) )))) = (subscript_expression "piVar34[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (goto_statement "goto LAB_000f380e;" goto statement_identifier ;) })) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" if (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0))" ( (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0))" ( (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" ( (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal)) ))) )) && (parenthesized_expression "(local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" ( (comma_expression "local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_17c = (int *)piVar11[0x1c]" identifier = (cast_expression "(int *)piVar11[0x1c]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]))) , (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "local_17c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f380e:\n    local_118 = 0;" statement_identifier : (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;)) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }" if (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" ( (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" * (cast_expression "(byte *)(piVar12 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 9)" ( (binary_expression "piVar12 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      local_118 = FUN_00055fd0();\n    }" { (expression_statement "local_118 = FUN_00055fd0();" (assignment_expression "local_118 = FUN_00055fd0()" identifier = (call_expression "FUN_00055fd0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_110 = piVar11[0xb];" (assignment_expression "local_110 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" (binary_expression "local_110 + 1" identifier + number_literal) + (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "iVar15 = local_110 + 1;" (assignment_expression "iVar15 = local_110 + 1" identifier = (binary_expression "local_110 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar16;" (assignment_expression "piVar11[0xb] = iVar16" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_12c = iVar15;" (assignment_expression "local_12c = iVar15" identifier = identifier) ;) (if_statement "if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" { (expression_statement "local_12c = local_110 + 2;" (assignment_expression "local_12c = local_110 + 2" identifier = (binary_expression "local_110 + 2" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar16 + 1;" (assignment_expression "piVar11[0xb] = iVar16 + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "local_110 = iVar15;" (assignment_expression "local_110 = iVar15" identifier = identifier) ;) })) (expression_statement "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;" (assignment_expression "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" identifier = (binary_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" (parenthesized_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1)" ( (binary_expression "(uint)piVar12[9] >> 7 & 0xff ^ 1" (binary_expression "(uint)piVar12[9] >> 7 & 0xff" (binary_expression "(uint)piVar12[9] >> 7" (cast_expression "(uint)piVar12[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[9]" identifier [ number_literal ])) >> number_literal) & number_literal) ^ number_literal) )) & number_literal)) ;) (if_statement "if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" if (parenthesized_expression "((param_1 == (int *)0x0) || (param_1[1] < 1))" ( (binary_expression "(param_1 == (int *)0x0) || (param_1[1] < 1)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) ))) )) (compound_statement "{\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }" { (labeled_statement "LAB_000f4012:\n      local_140 = 0xffffffff;" statement_identifier : (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" else (compound_statement "{\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);" do (compound_statement "{\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      }" { (expression_statement "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8)" * (cast_expression "(undefined4 *)(*param_1 + 4 + iVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4 + iVar16 * 8)" ( (binary_expression "*param_1 + 4 + iVar16 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar16 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 < param_1[1])" ( (binary_expression "iVar16 < param_1[1]" identifier < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) ;) (if_statement "if (param_1[1] < 1) goto LAB_000f4012;" if (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000f4012;" goto statement_identifier ;)) (expression_statement "local_14c = 0;" (assignment_expression "local_14c = 0" identifier = number_literal) ;) (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);" do (compound_statement "{\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      }" { (expression_statement "puVar17 = (undefined4 *)(local_14c * 8 + *param_1);" (assignment_expression "puVar17 = (undefined4 *)(local_14c * 8 + *param_1)" identifier = (cast_expression "(undefined4 *)(local_14c * 8 + *param_1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_14c * 8 + *param_1)" ( (binary_expression "local_14c * 8 + *param_1" (binary_expression "local_14c * 8" identifier * number_literal) + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "local_174 = (byte *)*puVar17;" (assignment_expression "local_174 = (byte *)*puVar17" identifier = (cast_expression "(byte *)*puVar17" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) ;) (if_statement "if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" if (parenthesized_expression "(0 < (int)local_170)" ( (binary_expression "0 < (int)local_170" number_literal < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);" do (compound_statement "{\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          }" { (expression_statement "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);" (assignment_expression "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10)" identifier = (pointer_expression "*(byte **)(piVar12[1] + uVar35 * 0x10)" * (cast_expression "(byte **)(piVar12[1] + uVar35 * 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[1] + uVar35 * 0x10)" ( (binary_expression "piVar12[1] + uVar35 * 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + (binary_expression "uVar35 * 0x10" identifier * number_literal)) ))))) ;) (expression_statement "pbVar29 = local_174;" (assignment_expression "pbVar29 = local_174" identifier = identifier) ;) (expression_statement "bVar1 = *local_174;" (assignment_expression "bVar1 = *local_174" identifier = (pointer_expression "*local_174" * identifier)) ;) (if_statement "if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" if (parenthesized_expression "((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI])" ( (binary_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ]) == (subscript_expression "(&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*local_174 + unaff_EDI" (binary_expression "(uint)*local_174" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ])) )) (compound_statement "{\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" { (do_statement "do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);" do (compound_statement "{\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              }" { (if_statement "if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" { (expression_statement "puVar17[1] = uVar35;" (assignment_expression "puVar17[1] = uVar35" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }" if (parenthesized_expression "(uVar35 != local_14c)" ( (binary_expression "uVar35 != local_14c" identifier != identifier) )) (compound_statement "{\n                    local_130._0_1_ = 0;\n                  }" { (expression_statement "local_130._0_1_ = 0;" (assignment_expression "local_130._0_1_ = 0" (field_expression "local_130._0_1_" identifier . field_identifier) = number_literal) ;) })) (expression_statement "local_130 = (uint)(byte)local_130;" (assignment_expression "local_130 = (uint)(byte)local_130" identifier = (cast_expression "(uint)(byte)local_130" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }" if (parenthesized_expression "((int)(short)piVar12[10] == uVar35)" ( (binary_expression "(int)(short)piVar12[10] == uVar35" (cast_expression "(int)(short)piVar12[10]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) == identifier) )) (compound_statement "{\n                    local_140 = local_14c;\n                  }" { (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" identifier = identifier) ;) })) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" identifier = (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;" if (parenthesized_expression "((int)uVar35 < (int)local_170)" ( (binary_expression "(int)uVar35 < (int)local_170" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_170" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000f39c8;" goto statement_identifier ;)) (expression_statement "local_174 = *(byte **)(*param_1 + local_14c * 8);" (assignment_expression "local_174 = *(byte **)(*param_1 + local_14c * 8)" identifier = (pointer_expression "*(byte **)(*param_1 + local_14c * 8)" * (cast_expression "(byte **)(*param_1 + local_14c * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + local_14c * 8)" ( (binary_expression "*param_1 + local_14c * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "local_14c * 8" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_000f399e;" goto statement_identifier ;) })) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar29 + 1;" (assignment_expression "pbVar29 = pbVar29 + 1" identifier = (binary_expression "pbVar29 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar29;" (assignment_expression "bVar1 = *pbVar29" identifier = (pointer_expression "*pbVar29" * identifier)) ;) }) while (parenthesized_expression "((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI])" ( (binary_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)bVar1 + unaff_EDI" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) == (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" ( (pointer_expression "&UNK_00076279" & identifier) )) [ (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier) ])) )) ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 != local_170)" ( (binary_expression "uVar35 != local_170" identifier != identifier) )) ;) })) (labeled_statement "LAB_000f399e:\n        iVar16 = FUN_00045bc0();" statement_identifier : (expression_statement "iVar16 = FUN_00045bc0();" (assignment_expression "iVar16 = FUN_00045bc0()" identifier = (call_expression "FUN_00045bc0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" if (parenthesized_expression "((iVar16 == 0) || ((uVar6 & 0x20) != 0))" ( (binary_expression "(iVar16 == 0) || ((uVar6 & 0x20) != 0)" (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "((uVar6 & 0x20) != 0)" ( (binary_expression "(uVar6 & 0x20) != 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" { (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" identifier (argument_list "(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" ( identifier , (binary_expression "unaff_EDI + 0x77cf9" identifier + number_literal) , identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined1 *)((int)piVar11 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)piVar11 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)piVar11 + 0x11)" * (cast_expression "(undefined1 *)((int)piVar11 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x11)" ( (binary_expression "(int)piVar11 + 0x11" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" identifier = identifier) ;) (labeled_statement "LAB_000f39c8:\n        local_14c = local_14c + 1;" statement_identifier : (expression_statement "local_14c = local_14c + 1;" (assignment_expression "local_14c = local_14c + 1" identifier = (binary_expression "local_14c + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((int)local_14c < param_1[1])" ( (binary_expression "(int)local_14c < param_1[1]" (cast_expression "(int)local_14c" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) ;) }))) (expression_statement "iVar16 = local_12c + 1;" (assignment_expression "iVar16 = local_12c + 1" identifier = (binary_expression "local_12c + 1" identifier + number_literal)) ;) (if_statement "if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);" do (compound_statement "{\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4))" * (cast_expression "(undefined4 *)((int)local_a8 + (uVar35 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + (uVar35 - 4))" ( (binary_expression "(int)local_a8 + (uVar35 - 4)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar35 - 4)" ( (binary_expression "uVar35 - 4" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" identifier = (binary_expression "uVar35 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < 0x1c)" ( (binary_expression "uVar35 < 0x1c" identifier < number_literal) )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "local_b0._0_4_ = piVar11;" (assignment_expression "local_b0._0_4_ = piVar11" (field_expression "local_b0._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" if (parenthesized_expression "(local_148 == (int *)0x0)" ( (binary_expression "local_148 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }" { (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "local_174 = (byte *)0x0;" (assignment_expression "local_174 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" else (compound_statement "{\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "local_174 = (byte *)*local_148;" (assignment_expression "local_174 = (byte *)*local_148" identifier = (cast_expression "(byte *)*local_148" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_148" * identifier))) ;) (expression_statement "piVar34 = local_148 + 1;" (assignment_expression "piVar34 = local_148 + 1" identifier = (binary_expression "local_148 + 1" identifier + number_literal)) ;) (if_statement "if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" if (parenthesized_expression "(0 < (int)local_174)" ( (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" { (do_statement "do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);" do (compound_statement "{\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          }" { (expression_statement "iVar22 = *piVar34;" (assignment_expression "iVar22 = *piVar34" identifier = (pointer_expression "*piVar34" * identifier)) ;) (if_statement "if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" { (expression_statement "uVar33 = (ushort)local_98;" (assignment_expression "uVar33 = (ushort)local_98" identifier = (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "local_b4 = &local_b0;" (assignment_expression "local_b4 = &local_b0" identifier = (pointer_expression "&local_b0" & identifier)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_98 = local_98 & 0xffff6fef;" (assignment_expression "local_98 = local_98 & 0xffff6fef" identifier = (binary_expression "local_98 & 0xffff6fef" identifier & number_literal)) ;) (expression_statement "local_cc = (int *)local_b0;" (assignment_expression "local_cc = (int *)local_b0" identifier = (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];" (assignment_expression "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" identifier = (binary_expression "*(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" (pointer_expression "*(int *)(iVar22 + 0x18)" * (cast_expression "(int *)(iVar22 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) + (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]))) ;) (expression_statement "((int *)local_b0)[0x33] = iVar24;" (assignment_expression "((int *)local_b0)[0x33] = iVar24" (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "local_c8 = unaff_EDI + -0x50327;" (assignment_expression "local_c8 = unaff_EDI + -0x50327" identifier = (binary_expression "unaff_EDI + -0x50327" identifier + number_literal)) ;) (expression_statement "local_c4 = unaff_EDI + -0x606a7;" (assignment_expression "local_c4 = unaff_EDI + -0x606a7" identifier = (binary_expression "unaff_EDI + -0x606a7" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" if (parenthesized_expression "(*(int *)(*(int *)local_b0 + 0x74) < iVar24)" ( (binary_expression "*(int *)(*(int *)local_b0 + 0x74) < iVar24" (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" * (cast_expression "(int *)(*(int *)local_b0 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_b0 + 0x74)" ( (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" * (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) < identifier) )) (compound_statement "{\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }" { (expression_statement "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));" (call_expression "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" identifier (argument_list "((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" ( (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "&UNK_000768cd + unaff_EDI" (pointer_expression "&UNK_000768cd" & identifier) + identifier) , (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" * (cast_expression "(int *)(*(int *)local_b0 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_b0 + 0x74)" ( (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" * (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) ))) ;) }) (else_clause "else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" else (compound_statement "{\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" { (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);" (assignment_expression "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" identifier [ number_literal ]) = (binary_expression "local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" identifier [ number_literal ]) - (pointer_expression "*(int *)(iVar22 + 0x18)" * (cast_expression "(int *)(iVar22 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" if (parenthesized_expression "((local_98 & 0x10) != 0)" ( (binary_expression "(local_98 & 0x10) != 0" (parenthesized_expression "(local_98 & 0x10)" ( (binary_expression "local_98 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" { (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" if (parenthesized_expression "((short)(ushort)local_98 < 0)" ( (binary_expression "(short)(ushort)local_98 < 0" (cast_expression "(short)(ushort)local_98" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) < number_literal) )) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" { (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" * (cast_expression "(uint *)(iVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);" (assignment_expression "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" identifier = (call_expression "CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" identifier (argument_list "(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" ( (field_expression "local_98._2_2_" identifier . field_identifier) , (binary_expression "uVar33 & 0x9010 | (ushort)local_98" (binary_expression "uVar33 & 0x9010" identifier & number_literal) | (cast_expression "(ushort)local_98" ( (type_descriptor "ushort" type_identifier) ) identifier)) )))) ;) (if_statement "if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;" if (parenthesized_expression "((local_9c < 1) && (local_cc[9] < 1))" ( (binary_expression "(local_9c < 1) && (local_cc[9] < 1)" (parenthesized_expression "(local_9c < 1)" ( (binary_expression "local_9c < 1" identifier < number_literal) )) && (parenthesized_expression "(local_cc[9] < 1)" ( (binary_expression "local_cc[9] < 1" (subscript_expression "local_cc[9]" identifier [ number_literal ]) < number_literal) ))) )) (goto_statement "goto LAB_000f41e7;" goto statement_identifier ;)) }))) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_000f36b0;" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f36b0;" goto statement_identifier ;)) (if_statement "if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                FUN_0005b000();\n              }" { (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_000f374a;" goto statement_identifier ;) })) (labeled_statement "LAB_000f41e7:\n            iVar18 = iVar18 + 1;" statement_identifier : (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;)) (expression_statement "piVar34 = piVar34 + 5;" (assignment_expression "piVar34 = piVar34 + 5" identifier = (binary_expression "piVar34 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < *local_148)" ( (binary_expression "iVar18 < *local_148" identifier < (pointer_expression "*local_148" * identifier)) )) ;) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_16c._0_1_ = param_1 == (int *)0x0;" (assignment_expression "local_16c._0_1_ = param_1 == (int *)0x0" (field_expression "local_16c._0_1_" identifier . field_identifier) = (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar35 = (uint)local_16c._0_1_;" (assignment_expression "uVar35 = (uint)local_16c._0_1_" identifier = (cast_expression "(uint)local_16c._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_16c._0_1_" identifier . field_identifier))) ;) (goto_statement "goto LAB_000f3c52;" goto statement_identifier ;) })) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);" (assignment_expression "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" identifier = (call_expression "(uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" ( (binary_expression "param_1 == (int *)0x0 && local_174 != (byte *)0x0" (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) }))) }) (else_clause "else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" else (compound_statement "{\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" { (expression_statement "iVar18 = piVar11[0xb];" (assignment_expression "iVar18 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar11[0xb] = iVar18 + 1;" (assignment_expression "piVar11[0xb] = iVar18 + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = local_144[0x1a];" (assignment_expression "iVar22 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00072f80(0,iVar22 + 1);" (call_expression "FUN_00072f80(0,iVar22 + 1)" identifier (argument_list "(0,iVar22 + 1)" ( number_literal , (binary_expression "iVar22 + 1" identifier + number_literal) ))) ;) (expression_statement "local_e4 = 0xd;" (assignment_expression "local_e4 = 0xd" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (if_statement "if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }" if (parenthesized_expression "((byte)local_130 != '\0')" ( (binary_expression "(byte)local_130 != '\0'" (cast_expression "(byte)local_130" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_dc = iVar16;\n      }" { (expression_statement "local_dc = iVar16;" (assignment_expression "local_dc = iVar16" identifier = identifier) ;) })) (expression_statement "local_d8 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_d8 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_e0 = iVar18 + 1;" (assignment_expression "local_e0 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = FUN_000c4410();" (assignment_expression "iVar18 = FUN_000c4410()" identifier = (call_expression "FUN_000c4410()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;" if (parenthesized_expression "(((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))" ( (binary_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0)" (parenthesized_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0'))" ( (binary_expression "(iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(piVar11[9] != 0)" ( (binary_expression "piVar11[9] != 0" (subscript_expression "piVar11[9]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "local_170 = local_dc;" (assignment_expression "local_170 = local_dc" identifier = identifier) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "*(undefined1 *)(local_144[3] + 0x13) = 0;" (assignment_expression "*(undefined1 *)(local_144[3] + 0x13) = 0" (pointer_expression "*(undefined1 *)(local_144[3] + 0x13)" * (cast_expression "(undefined1 *)(local_144[3] + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[3] + 0x13)" ( (binary_expression "local_144[3] + 0x13" (subscript_expression "local_144[3]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_144[3] + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(local_144[3] + 0x1c) = 0" (pointer_expression "*(undefined4 *)(local_144[3] + 0x1c)" * (cast_expression "(undefined4 *)(local_144[3] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[3] + 0x1c)" ( (binary_expression "local_144[3] + 0x1c" (subscript_expression "local_144[3]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "iVar18 = local_144[0x1a];" (assignment_expression "iVar18 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar24 = *local_144;" (assignment_expression "iVar24 = *local_144" identifier = (pointer_expression "*local_144" * identifier)) ;) (if_statement "if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar22 = iVar18 + -1;\n      }" { (expression_statement "iVar22 = iVar18 + -1;" (assignment_expression "iVar22 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" if (parenthesized_expression "(*(char *)(iVar24 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar24 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar24 + 0x4d)" * (cast_expression "(char *)(iVar24 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x4d)" ( (binary_expression "iVar24 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" { (expression_statement "iVar24 = iVar22 * 3;" (assignment_expression "iVar24 = iVar22 * 3" identifier = (binary_expression "iVar22 * 3" identifier * number_literal)) ;) (expression_statement "iVar25 = local_144[0x19] + iVar22 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar22 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar22 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar22 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar25 + 8) = iVar18;" (assignment_expression "*(int *)(iVar25 + 8) = iVar18" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_174 = *(byte **)*local_158;" (assignment_expression "local_174 = *(byte **)*local_158" identifier = (pointer_expression "*(byte **)*local_158" * (cast_expression "(byte **)*local_158" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_158" * identifier)))) ;) (if_statement "if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }" { (expression_statement "uVar42 = CONCAT44(iVar18,piVar11[2]);" (assignment_expression "uVar42 = CONCAT44(iVar18,piVar11[2])" identifier = (call_expression "CONCAT44(iVar18,piVar11[2])" identifier (argument_list "(iVar18,piVar11[2])" ( identifier , (subscript_expression "piVar11[2]" identifier [ number_literal ]) )))) ;) (if_statement "if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" if (parenthesized_expression "(piVar11[2] == 0)" ( (binary_expression "piVar11[2] == 0" (subscript_expression "piVar11[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" { (expression_statement "uVar42 = FUN_00073350();" (assignment_expression "uVar42 = FUN_00073350()" identifier = (call_expression "FUN_00073350()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar24 = extraout_ECX_06;" (assignment_expression "iVar24 = extraout_ECX_06" identifier = identifier) ;) })) (expression_statement "iVar18 = (int)((ulonglong)uVar42 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar42 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" ( (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar37 = (int *)uVar42;" (assignment_expression "piVar37 = (int *)uVar42" identifier = (cast_expression "(int *)uVar42" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar34 = (int *)0x0;" (assignment_expression "piVar34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" { (expression_statement "iVar18 = *piVar11;" (assignment_expression "iVar18 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" for ( (assignment_expression "piVar34 = (int *)piVar12[0x10]" identifier = (cast_expression "(int *)piVar12[0x10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x10]" identifier [ number_literal ]))) ; (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar18 != *piVar34))" ( (binary_expression "piVar34 != (int *)0x0 && (iVar18 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar18 != *piVar34)" ( (binary_expression "iVar18 != *piVar34" identifier != (pointer_expression "*piVar34" * identifier)) ))) )) ; (assignment_expression "piVar34 = (int *)piVar34[6]" identifier = (cast_expression "(int *)piVar34[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[6]" identifier [ number_literal ]))) ) (compound_statement "{\n          }" { })) })) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" identifier (argument_list "((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" ( (call_expression "(int3)((uint)iVar18 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" identifier = (binary_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)iVar24 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar24 >> 8)" ( (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar27,0)" identifier (argument_list "(uVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" identifier = (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" identifier (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" if (parenthesized_expression "(1 < piVar37[0x1a])" ( (binary_expression "1 < piVar37[0x1a]" number_literal < (subscript_expression "piVar37[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" { (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (do_statement "do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);" do (compound_statement "{\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "pcVar32 = (char *)(unaff_EDI + 0xc9455);" (assignment_expression "pcVar32 = (char *)(unaff_EDI + 0xc9455)" identifier = (cast_expression "(char *)(unaff_EDI + 0xc9455)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc9455)" ( (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal) )))) ;) (if_statement "if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" if (parenthesized_expression "(*(char *)(*piVar37 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*piVar37 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar37 + 0x4d)" * (cast_expression "(char *)(*piVar37 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar37 + 0x4d)" ( (binary_expression "*piVar37 + 0x4d" (pointer_expression "*piVar37" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" { (expression_statement "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);" (assignment_expression "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18)" identifier = (cast_expression "(char *)(piVar37[0x19] + iVar18 * 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar37[0x19] + iVar18 * 0x18)" ( (binary_expression "piVar37[0x19] + iVar18 * 0x18" (subscript_expression "piVar37[0x19]" identifier [ number_literal ]) + (binary_expression "iVar18 * 0x18" identifier * number_literal)) )))) ;) })) (if_statement "if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" if (parenthesized_expression "(*pcVar32 == 'm')" ( (binary_expression "*pcVar32 == 'm'" (pointer_expression "*pcVar32" * identifier) == (char_literal "'m'" ' character ')) )) (compound_statement "{\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }" { (if_statement "if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" if (parenthesized_expression "(local_134 == *(int *)(pcVar32 + 0xc))" ( (binary_expression "local_134 == *(int *)(pcVar32 + 0xc)" identifier == (pointer_expression "*(int *)(pcVar32 + 0xc)" * (cast_expression "(int *)(pcVar32 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0xc)" ( (binary_expression "pcVar32 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" { (if_statement "if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;" if (parenthesized_expression "(*(int *)(pcVar32 + 8) == piVar12[7])" ( (binary_expression "*(int *)(pcVar32 + 8) == piVar12[7]" (pointer_expression "*(int *)(pcVar32 + 8)" * (cast_expression "(int *)(pcVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 8)" ( (binary_expression "pcVar32 + 8" identifier + number_literal) )))) == (subscript_expression "piVar12[7]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) (for_statement "for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" for ( (assignment_expression "iVar22 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ; (binary_expression "iVar22 != 0" identifier != number_literal) ; (assignment_expression "iVar22 = *(int *)(iVar22 + 0x14)" identifier = (pointer_expression "*(int *)(iVar22 + 0x14)" * (cast_expression "(int *)(iVar22 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x14)" ( (binary_expression "iVar22 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" { (if_statement "if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;" if (parenthesized_expression "(*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c))" ( (binary_expression "*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)" (pointer_expression "*(int *)(pcVar32 + 8)" * (cast_expression "(int *)(pcVar32 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 8)" ( (binary_expression "pcVar32 + 8" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar22 + 0x2c)" * (cast_expression "(int *)(iVar22 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)) })) })) }) (else_clause "else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" else (if_statement "if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" if (parenthesized_expression "((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))" ( (binary_expression "(*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34)" (parenthesized_expression "(*pcVar32 == -0x5d)" ( (binary_expression "*pcVar32 == -0x5d" (pointer_expression "*pcVar32" * identifier) == number_literal) )) && (parenthesized_expression "(*(int **)(pcVar32 + 0x10) == piVar34)" ( (binary_expression "*(int **)(pcVar32 + 0x10) == piVar34" (pointer_expression "*(int **)(pcVar32 + 0x10)" * (cast_expression "(int **)(pcVar32 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x10)" ( (binary_expression "pcVar32 + 0x10" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_000f3b16;" goto statement_identifier ;)))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar37[0x1a] != iVar18)" ( (binary_expression "piVar37[0x1a] != iVar18" (subscript_expression "piVar37[0x1a]" identifier [ number_literal ]) != identifier) )) ;) })) }) (else_clause "else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" else (compound_statement "{\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" { (labeled_statement "LAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;" statement_identifier : (expression_statement "piVar11[10] = piVar11[10] + 1;" (assignment_expression "piVar11[10] = piVar11[10] + 1" (subscript_expression "piVar11[10]" identifier [ number_literal ]) = (binary_expression "piVar11[10] + 1" (subscript_expression "piVar11[10]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x13)" * (cast_expression "(char *)((int)piVar11 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }" { (expression_statement "iVar18 = piVar11[0xb] + 1;" (assignment_expression "iVar18 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar22 = iVar18;" (assignment_expression "iVar22 = iVar18" identifier = identifier) ;) (labeled_statement "LAB_000f4ecb:\n          iVar22 = iVar22 + 1;" statement_identifier : (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;)) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" else (compound_statement "{\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" { (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" identifier = (binary_expression "cVar2 - 1" identifier - number_literal)) ;) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = piVar11[bVar1 + 0x24];" (assignment_expression "iVar18 = piVar11[bVar1 + 0x24]" identifier = (subscript_expression "piVar11[bVar1 + 0x24]" identifier [ (binary_expression "bVar1 + 0x24" identifier + number_literal) ])) ;) (if_statement "if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" { (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000f4ecb;" goto statement_identifier ;) })) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" * (cast_expression "(byte *)((int)piVar11 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x13)" ( (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar2 - 2U" identifier - number_literal)) ;) (expression_statement "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier = (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" identifier [ (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 2U)" ( (binary_expression "cVar2 - 2U" identifier - number_literal) ))) + number_literal) ])) ;) }))) (expression_statement "FUN_00073150(local_174);" (call_expression "FUN_00073150(local_174)" identifier (argument_list "(local_174)" ( identifier ))) ;) (expression_statement "iVar19 = FUN_00073150(0);" (assignment_expression "iVar19 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00072f80(local_174,iVar18);" (call_expression "FUN_00072f80(local_174,iVar18)" identifier (argument_list "(local_174,iVar18)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "FUN_00072f80(iVar18,iVar22);" (call_expression "FUN_00072f80(iVar18,iVar22)" identifier (argument_list "(iVar18,iVar22)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073150(iVar19);" (call_expression "FUN_00073150(iVar19)" identifier (argument_list "(iVar19)" ( identifier ))) ;) (expression_statement "iVar24 = local_144[0x1a];" (assignment_expression "iVar24 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = *local_144;" (assignment_expression "iVar25 = *local_144" identifier = (pointer_expression "*local_144" * identifier)) ;) (if_statement "if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar19 = iVar24 + -1;\n        }" { (expression_statement "iVar19 = iVar24 + -1;" (assignment_expression "iVar19 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar20 = unaff_EDI + 0xc9455;" (assignment_expression "iVar20 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" if (parenthesized_expression "(*(char *)(iVar25 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar25 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar25 + 0x4d)" * (cast_expression "(char *)(iVar25 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x4d)" ( (binary_expression "iVar25 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" { (expression_statement "iVar25 = iVar19 * 3;" (assignment_expression "iVar25 = iVar19 * 3" identifier = (binary_expression "iVar19 * 3" identifier * number_literal)) ;) (expression_statement "iVar20 = local_144[0x19] + iVar19 * 0x18;" (assignment_expression "iVar20 = local_144[0x19] + iVar19 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar19 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar19 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar20 + 8) = iVar24;" (assignment_expression "*(int *)(iVar20 + 8) = iVar24" (pointer_expression "*(int *)(iVar20 + 8)" * (cast_expression "(int *)(iVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar25 = extraout_ECX_00;" (assignment_expression "iVar25 = extraout_ECX_00" identifier = identifier) ;) (expression_statement "iVar24 = extraout_EDX;" (assignment_expression "iVar24 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" identifier = (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" identifier (argument_list "((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" ( (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar24 >> 8)" ( (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" identifier = (binary_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174)" identifier (argument_list "((int3)((uint)iVar25 >> 8),0 < (int)local_174)" ( (call_expression "(int3)((uint)iVar25 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)iVar25 >> 8)" ( (binary_expression "(uint)iVar25 >> 8" (cast_expression "(uint)iVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "0 < (int)local_174" number_literal < (cast_expression "(int)local_174" ( (type_descriptor "int" primitive_type) ) identifier)) ))) & identifier)) ;) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" identifier . field_identifier) = (call_expression "SUB41(uVar27,0)" identifier (argument_list "(uVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" identifier = (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" identifier (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" ( (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar27 >> 8)" ( (binary_expression "uVar27 >> 8" identifier >> number_literal) ))) , (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) & identifier)) ;) (if_statement "if (iVar22 != 0) {\n          FUN_00045e10();\n        }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00045e10();\n        }" { (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" identifier (argument_list "()" ( ))) ;) })) }))) (labeled_statement "LAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" statement_identifier : (if_statement "if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" if (parenthesized_expression "(local_16c._0_1_ != false)" ( (binary_expression "local_16c._0_1_ != false" (field_expression "local_16c._0_1_" identifier . field_identifier) != false) )) (compound_statement "{\n        local_140 = (uint)(short)piVar12[10];\n      }" { (expression_statement "local_140 = (uint)(short)piVar12[10];" (assignment_expression "local_140 = (uint)(short)piVar12[10]" identifier = (cast_expression "(uint)(short)piVar12[10]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])))) ;) }))) }))) (expression_statement "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int *)(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (if_statement "if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" if (parenthesized_expression "((int)piVar34 < 1)" ( (binary_expression "(int)piVar34 < 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar18 = 0;\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" else (compound_statement "{\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(piVar12[1] + 0xf);" (assignment_expression "pbVar21 = (byte *)(piVar12[1] + 0xf)" identifier = (cast_expression "(byte *)(piVar12[1] + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0xf)" ( (binary_expression "piVar12[1] + 0xf" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "pbVar29 = pbVar21 + (int)piVar34 * 0x10;" (assignment_expression "pbVar29 = pbVar21 + (int)piVar34 * 0x10" identifier = (binary_expression "pbVar21 + (int)piVar34 * 0x10" identifier + (binary_expression "(int)piVar34 * 0x10" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);" do (compound_statement "{\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      }" { (expression_statement "bVar1 = *pbVar21;" (assignment_expression "bVar1 = *pbVar21" identifier = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar21 = pbVar21 + 0x10;" (assignment_expression "pbVar21 = pbVar21 + 0x10" identifier = (binary_expression "pbVar21 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);" (assignment_expression "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" identifier = (binary_expression "iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" identifier + (parenthesized_expression "((int)(uint)bVar1 >> 1 & 1U)" ( (binary_expression "(int)(uint)bVar1 >> 1 & 1U" (binary_expression "(int)(uint)bVar1 >> 1" (cast_expression "(int)(uint)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) & number_literal) )))) ;) }) while (parenthesized_expression "(pbVar29 != pbVar21)" ( (binary_expression "pbVar29 != pbVar21" identifier != identifier) )) ;) }))) (if_statement "if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((char)uVar35 == '\0')" ( (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" { (if_statement "if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;" if (parenthesized_expression "((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174))" ( (binary_expression "(param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)" (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((byte *)param_1[1] == local_174)" ( (binary_expression "(byte *)param_1[1] == local_174" (cast_expression "(byte *)param_1[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) == identifier) ))) )) (goto_statement "goto LAB_000f3caf;" goto statement_identifier ;)) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" identifier (argument_list "(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" ( identifier , (binary_expression "unaff_EDI + 0x6a7b3" identifier + number_literal) , identifier , (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (expression_statement "piVar34 = (int *)((int)piVar34 - iVar18);" (assignment_expression "piVar34 = (int *)((int)piVar34 - iVar18)" identifier = (cast_expression "(int *)((int)piVar34 - iVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 - iVar18)" ( (binary_expression "(int)piVar34 - iVar18" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "((byte *)piVar34 != local_174)" ( (binary_expression "(byte *)piVar34 != local_174" (cast_expression "(byte *)piVar34" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" { (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" identifier (argument_list "(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" ( identifier , (binary_expression "unaff_EDI + 0x77d19" identifier + number_literal) , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (labeled_statement "LAB_000f3caf:\n    local_16c = 0;" statement_identifier : (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;)) (if_statement "if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" if (parenthesized_expression "((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0))" ( (binary_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)" (parenthesized_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0'))" ( (binary_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')" (parenthesized_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0)" ( (binary_expression "(*(byte *)(iVar26 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1c) & 0x80)" ( (binary_expression "*(byte *)(iVar26 + 0x1c) & 0x80" (pointer_expression "*(byte *)(iVar26 + 0x1c)" * (cast_expression "(byte *)(iVar26 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x1c)" ( (binary_expression "iVar26 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(piVar11[0x1e] == 0)" ( (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" { (expression_statement "local_16c = piVar11[0xb] + 1;" (assignment_expression "local_16c = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xb] = local_16c;" (assignment_expression "piVar11[0xb] = local_16c" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00073150(local_16c);" (call_expression "FUN_00073150(local_16c)" identifier (argument_list "(local_16c)" ( identifier ))) ;) })) (expression_statement "local_168 = (int *)0x0;" (assignment_expression "local_168 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" { (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" { (expression_statement "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);" (assignment_expression "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" identifier = (cast_expression "(int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" identifier (argument_list "(0,0xffffffff,0,&local_f0,&local_ec)" ( number_literal , number_literal , number_literal , (pointer_expression "&local_f0" & identifier) , (pointer_expression "&local_ec" & identifier) ))))) ;) })) (if_statement "if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;" if (parenthesized_expression "((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0))" ( (binary_expression "(*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" * (cast_expression "(char *)(iVar26 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x4d)" ( (binary_expression "iVar26 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" ( (comma_expression "local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0" (assignment_expression "local_168 = (int *)FUN_00055c10()" identifier = (cast_expression "(int *)FUN_00055c10()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055c10()" identifier (argument_list "()" ( ))))) , (binary_expression "local_168 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000f366b;" goto statement_identifier ;)) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" identifier = identifier) ;) (if_statement "if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" if (parenthesized_expression "(0 < (int)piVar37)" ( (binary_expression "0 < (int)piVar37" number_literal < (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" { (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" identifier = (subscript_expression "piVar11[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar30 = local_168;" (assignment_expression "piVar30 = local_168" identifier = identifier) ;) (do_statement "do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);" do (compound_statement "{\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar31 = piVar30 + 1;" (assignment_expression "piVar31 = piVar30 + 1" identifier = (binary_expression "piVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar30 = iVar22;" (assignment_expression "*piVar30 = iVar22" (pointer_expression "*piVar30" * identifier) = identifier) ;) (expression_statement "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);" (assignment_expression "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" identifier = (binary_expression "iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" identifier + (binary_expression "(uint)*(ushort *)(iVar18 + 0x34)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar18 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar18 = *(int *)(iVar18 + 0x14);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x14)" identifier = (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "piVar30 = piVar31;" (assignment_expression "piVar30 = piVar31" identifier = identifier) ;) (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" identifier = identifier) ;) }) while (parenthesized_expression "(local_168 + (int)piVar37 != piVar31)" ( (binary_expression "local_168 + (int)piVar37 != piVar31" (binary_expression "local_168 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) })) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" { (labeled_statement "LAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" statement_identifier : (if_statement "if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }" { (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_160 = local_144[0x1a];" (assignment_expression "local_160 = local_144[0x1a]" identifier = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" else (if_statement "if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_160 = 0;\n        iVar23 = 0;\n      }" { (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" else (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" { (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "local_160 = iVar23;" (assignment_expression "local_160 = iVar23" identifier = identifier) ;) })))))) (expression_statement "iVar18 = piVar11[0xe] + -1;" (assignment_expression "iVar18 = piVar11[0xe] + -1" identifier = (binary_expression "piVar11[0xe] + -1" (subscript_expression "piVar11[0xe]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xe] = iVar18;" (assignment_expression "piVar11[0xe] = iVar18" (subscript_expression "piVar11[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" if (parenthesized_expression "((local_e8[0] & 1) != 0)" ( (binary_expression "(local_e8[0] & 1) != 0" (parenthesized_expression "(local_e8[0] & 1)" ( (binary_expression "local_e8[0] & 1" (subscript_expression "local_e8[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" { (expression_statement "iVar22 = FUN_00045e40();" (assignment_expression "iVar22 = FUN_00045e40()" identifier = (call_expression "FUN_00045e40()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          FUN_00073150(iVar22);\n        }" { (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) }) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" else (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" { (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }" { (expression_statement "FUN_00072f80(local_140,iVar22,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,iVar22,piVar34,piVar34)" identifier (argument_list "(local_140,iVar22,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            FUN_000cb850();\n          }" else (compound_statement "{\n            FUN_000cb850();\n          }" { (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar24 = FUN_00073150(0);" (assignment_expression "iVar24 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (if_statement "if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar24 = local_144[0x1a] + -1;\n          }" { (expression_statement "iVar24 = local_144[0x1a] + -1;" (assignment_expression "iVar24 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" { (expression_statement "iVar25 = local_144[0x19] + iVar24 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar24 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar24 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar24 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar25 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar25 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }))) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" if (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" ( (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);" (assignment_expression "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" identifier = (cast_expression "(bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((bVar10 ^ 1U) & local_148 == (int *)0x0)" ( (binary_expression "(bVar10 ^ 1U) & local_148 == (int *)0x0" (parenthesized_expression "(bVar10 ^ 1U)" ( (binary_expression "bVar10 ^ 1U" identifier ^ number_literal) )) & (binary_expression "local_148 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);" do (compound_statement "{\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          }" { (if_statement "if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }" { (if_statement "if (bVar39) goto LAB_000f4c2c;" if (parenthesized_expression "(bVar39)" ( identifier )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (labeled_statement "LAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" statement_identifier : (if_statement "if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }" { (expression_statement "FUN_00072f80(iVar25,iVar22 + 1 + iVar19);" (call_expression "FUN_00072f80(iVar25,iVar22 + 1 + iVar19)" identifier (argument_list "(iVar25,iVar22 + 1 + iVar19)" ( identifier , (binary_expression "iVar22 + 1 + iVar19" (binary_expression "iVar22 + 1" identifier + number_literal) + identifier) ))) ;) }) (else_clause "else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" else (compound_statement "{\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" { (expression_statement "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];" (assignment_expression "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1]" identifier = (cast_expression "(undefined1 *)local_148[iVar25 * 5 + 1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_148[iVar25 * 5 + 1]" identifier [ (binary_expression "iVar25 * 5 + 1" (binary_expression "iVar25 * 5" identifier * number_literal) + number_literal) ]))) ;) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar24 = piVar11[0xb] + 1;" (assignment_expression "iVar24 = piVar11[0xb] + 1" identifier = (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11[0xb] = iVar24;" (assignment_expression "piVar11[0xb] = iVar24" (subscript_expression "piVar11[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00073150(iVar24);" (call_expression "FUN_00073150(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "uVar3 = *puVar7;" (assignment_expression "uVar3 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(int *)(puVar7 + 0x1c) = iVar24;" (assignment_expression "*(int *)(puVar7 + 0x1c) = iVar24" (pointer_expression "*(int *)(puVar7 + 0x1c)" * (cast_expression "(int *)(puVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1c)" ( (binary_expression "puVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar7 = 0xa4;" (assignment_expression "*puVar7 = 0xa4" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[0x28] = uVar3;" (assignment_expression "puVar7[0x28] = uVar3" (subscript_expression "puVar7[0x28]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;" (assignment_expression "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" * (cast_expression "(uint *)(puVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" * (cast_expression "(uint *)(puVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) })))) }) (else_clause "else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" else (compound_statement "{\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" { (if_statement "if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" if (parenthesized_expression "(param_1[1] < 1)" ( (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n                iVar25 = 0;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" else (compound_statement "{\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(*param_1 + 4);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4)" identifier = (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (while_statement "while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" while (parenthesized_expression "(iVar19 != iVar24)" ( (binary_expression "iVar19 != iVar24" identifier != identifier) )) (compound_statement "{\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" { (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (if_statement "if (iVar25 == param_1[1]) goto LAB_000f4c2c;" if (parenthesized_expression "(iVar25 == param_1[1])" ( (binary_expression "iVar25 == param_1[1]" identifier == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f4c2c;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8)" identifier = (pointer_expression "*(int *)(*param_1 + 4 + iVar25 * 8)" * (cast_expression "(int *)(*param_1 + 4 + iVar25 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4 + iVar25 * 8)" ( (binary_expression "*param_1 + 4 + iVar25 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar25 * 8" identifier * number_literal)) ))))) ;) })) (if_statement "if (!bVar39) goto LAB_000f4c96;" if (parenthesized_expression "(!bVar39)" ( (unary_expression "!bVar39" ! identifier) )) (goto_statement "goto LAB_000f4c96;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000f4c2c:\n              FUN_000cb850();" statement_identifier : (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);" (assignment_expression "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0)" identifier = (binary_expression "iVar25 + (uint)(param_1 == (int *)0x0)" identifier + (call_expression "(uint)(param_1 == (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(iVar19 < iVar24)" ( (binary_expression "iVar19 < iVar24" identifier < identifier) )) ;) })) (if_statement "if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" { (expression_statement "FUN_00073230();" (call_expression "FUN_00073230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);" (call_expression "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" identifier (argument_list "(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" ( number_literal , number_literal , identifier , (binary_expression "(iVar22 - iVar24) + -1" (parenthesized_expression "(iVar22 - iVar24)" ( (binary_expression "iVar22 - iVar24" identifier - identifier) )) + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;" (assignment_expression "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1" identifier = (binary_expression "*(short *)((int)piVar12 + 0x2a) + 1" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "piVar34 = piVar12;" (assignment_expression "piVar34 = piVar12" identifier = identifier) ;) (if_statement "if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" if (parenthesized_expression "(iVar24 == 1)" ( (binary_expression "iVar24 == 1" identifier == number_literal) )) (compound_statement "{\n          FUN_0004b0a0();\n        }" { (expression_statement "FUN_0004b0a0();" (call_expression "FUN_0004b0a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" else (if_statement "if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" if (parenthesized_expression "(piVar11[7] < iVar24)" ( (binary_expression "piVar11[7] < iVar24" (subscript_expression "piVar11[7]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" { (expression_statement "piVar11[7] = iVar24;" (assignment_expression "piVar11[7] = iVar24" (subscript_expression "piVar11[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[8] = iVar22;" (assignment_expression "piVar11[8] = iVar22" (subscript_expression "piVar11[8]" identifier [ number_literal ]) = identifier) ;) })))) })) (if_statement "if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" { (if_statement "if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }" if (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          FUN_00073150(iVar15);\n        }" { (expression_statement "FUN_00073150(iVar15);" (call_expression "FUN_00073150(iVar15)" identifier (argument_list "(iVar15)" ( identifier ))) ;) })) (if_statement "if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" if (parenthesized_expression "((int)local_140 < 0)" ( (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }" { (expression_statement "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);" (assignment_expression "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe])" identifier = (cast_expression "(int *)(uVar6 & 0x20 | piVar12[0xe])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 & 0x20 | piVar12[0xe])" ( (binary_expression "uVar6 & 0x20 | piVar12[0xe]" (binary_expression "uVar6 & 0x20" identifier & number_literal) | (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) )))) ;) (if_statement "if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" if (parenthesized_expression "(piVar37 == (int *)0x0)" ( (binary_expression "piVar37 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }" { (labeled_statement "LAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);" statement_identifier : (expression_statement "FUN_00072f80(local_12c,local_118,piVar34,piVar34);" (call_expression "FUN_00072f80(local_12c,local_118,piVar34,piVar34)" identifier (argument_list "(local_12c,local_118,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;)) (expression_statement "local_138 = 1;" (assignment_expression "local_138 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" else (compound_statement "{\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" else (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" { (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }" { (expression_statement "FUN_00072f80(local_140,local_12c,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,local_12c,piVar34,piVar34)" identifier (argument_list "(local_140,local_12c,piVar34,piVar34)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" else (if_statement "if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }" { (if_statement "if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;" if (parenthesized_expression "((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0))" ( (binary_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)" (parenthesized_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n')" ( (binary_expression "*(char *)local_148[local_140 * 5 + 1] == 'n'" (pointer_expression "*(char *)local_148[local_140 * 5 + 1]" * (cast_expression "(char *)local_148[local_140 * 5 + 1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_148[local_140 * 5 + 1]" identifier [ (binary_expression "local_140 * 5 + 1" (binary_expression "local_140 * 5" identifier * number_literal) + number_literal) ]))) == (char_literal "'n'" ' character ')) )) && (parenthesized_expression "(piVar37 = local_148, piVar12[0xe] == 0)" ( (comma_expression "piVar37 = local_148, piVar12[0xe] == 0" (assignment_expression "piVar37 = local_148" identifier = identifier) , (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal)) ))) )) (goto_statement "goto LAB_000f4a81;" goto statement_identifier ;)) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            FUN_00073150(local_12c);\n          }" else (compound_statement "{\n            FUN_00073150(local_12c);\n          }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) }))))) (if_statement "if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }" { (expression_statement "iVar13 = FUN_00073150(0);" (assignment_expression "iVar13 = FUN_00073150(0)" identifier = (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "FUN_00072f80(local_12c,local_118);" (call_expression "FUN_00072f80(local_12c,local_118)" identifier (argument_list "(local_12c,local_118)" ( identifier , identifier ))) ;) (if_statement "if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n              iVar13 = local_144[0x1a] + -1;\n            }" { (expression_statement "iVar13 = local_144[0x1a] + -1;" (assignment_expression "iVar13 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" { (expression_statement "iVar22 = local_144[0x19] + iVar13 * 0x18;" (assignment_expression "iVar22 = local_144[0x19] + iVar13 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar13 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar22 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" else (compound_statement "{\n            FUN_00073150(local_144[0x1a] + 2);\n          }" { (expression_statement "FUN_00073150(local_144[0x1a] + 2);" (call_expression "FUN_00073150(local_144[0x1a] + 2)" identifier (argument_list "(local_144[0x1a] + 2)" ( (binary_expression "local_144[0x1a] + 2" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal) ))) ;) }))) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "piVar37 = local_144;" (assignment_expression "piVar37 = local_144" identifier = identifier) ;) }))) (if_statement "if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }" if (parenthesized_expression "(0 < local_118)" ( (binary_expression "0 < local_118" number_literal < identifier) )) (compound_statement "{\n          FUN_00073150(local_12c);\n        }" { (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" identifier (argument_list "(local_12c)" ( identifier ))) ;) })) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" if (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" ( (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" { (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));" do (compound_statement "{\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          }" { (if_statement "if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" if (parenthesized_expression "((int *)(int)(short)piVar12[10] == piVar37)" ( (binary_expression "(int *)(int)(short)piVar12[10] == piVar37" (cast_expression "(int *)(int)(short)piVar12[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(short)piVar12[10]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)piVar12[10]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "piVar12[10]" identifier [ number_literal ])))) == identifier) )) (compound_statement "{\n              FUN_00073150(0);\n            }" { (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" else (compound_statement "{\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" { (if_statement "if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }" { (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" identifier = (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }" if (parenthesized_expression "((*(byte *)(iVar13 + 0xf) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0xf) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0xf) & 2)" ( (binary_expression "*(byte *)(iVar13 + 0xf) & 2" (pointer_expression "*(byte *)(iVar13 + 0xf)" * (cast_expression "(byte *)(iVar13 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf)" ( (binary_expression "iVar13 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }" { (expression_statement "iVar22 = (int)piVar37 - local_134;" (assignment_expression "iVar22 = (int)piVar37 - local_134" identifier = (binary_expression "(int)piVar37 - local_134" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (if_statement "if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;" if (parenthesized_expression "((-1 < iVar22) && (local_174 != (byte *)0x0))" ( (binary_expression "(-1 < iVar22) && (local_174 != (byte *)0x0)" (parenthesized_expression "(-1 < iVar22)" ( (binary_expression "-1 < iVar22" number_literal < identifier) )) && (parenthesized_expression "(local_174 != (byte *)0x0)" ( (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000f47c2;" goto statement_identifier ;)) }) (else_clause "else {\n                  local_134 = local_134 + 1;\n                }" else (compound_statement "{\n                  local_134 = local_134 + 1;\n                }" { (expression_statement "local_134 = local_134 + 1;" (assignment_expression "local_134 = local_134 + 1" identifier = (binary_expression "local_134 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" else (compound_statement "{\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" { (if_statement "if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" if (parenthesized_expression "(0 < param_1[1])" ( (binary_expression "0 < param_1[1]" number_literal < (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "piVar34 = *(int **)(*param_1 + 4);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4)" identifier = (pointer_expression "*(int **)(*param_1 + 4)" * (cast_expression "(int **)(*param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (while_statement "while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" while (parenthesized_expression "(piVar34 != piVar37)" ( (binary_expression "piVar34 != piVar37" identifier != identifier) )) (compound_statement "{\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (if_statement "if (iVar22 == param_1[1]) goto LAB_000f47ad;" if (parenthesized_expression "(iVar22 == param_1[1])" ( (binary_expression "iVar22 == param_1[1]" identifier == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000f47ad;" goto statement_identifier ;)) (expression_statement "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8)" identifier = (pointer_expression "*(int **)(*param_1 + 4 + iVar22 * 8)" * (cast_expression "(int **)(*param_1 + 4 + iVar22 * 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 4 + iVar22 * 8)" ( (binary_expression "*param_1 + 4 + iVar22 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) + (binary_expression "iVar22 * 8" identifier * number_literal)) ))))) ;) })) (if_statement "if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" if (parenthesized_expression "(local_174 != (byte *)0x0)" ( (binary_expression "local_174 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" { (labeled_statement "LAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" statement_identifier : (if_statement "if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }" { (expression_statement "FUN_00072f80(iVar22,iVar16 + (int)piVar37);" (call_expression "FUN_00072f80(iVar22,iVar16 + (int)piVar37)" identifier (argument_list "(iVar22,iVar16 + (int)piVar37)" ( identifier , (binary_expression "iVar16 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) }) (else_clause "else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" else (if_statement "if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(local_158 == (int *)0x0)" ( (binary_expression "local_158 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      FUN_000cb850();\n                    }" { (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" else (if_statement "if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" if (parenthesized_expression "(local_170 != iVar16)" ( (binary_expression "local_170 != iVar16" identifier != identifier) )) (compound_statement "{\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" { (expression_statement "FUN_00073150(iVar16 + (int)piVar37);" (call_expression "FUN_00073150(iVar16 + (int)piVar37)" identifier (argument_list "(iVar16 + (int)piVar37)" ( (binary_expression "iVar16 + (int)piVar37" identifier + (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) }))))))) (goto_statement "goto LAB_000f4756;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];" statement_identifier : (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" identifier = (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x17) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x17) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x17)" * (cast_expression "(char *)((int)piVar11 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x17)" ( (binary_expression "(int)piVar11 + 0x17" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000f474b:\n                FUN_000cb850();\n              }" { (labeled_statement "LAB_000f474b:\n                FUN_000cb850();" statement_identifier : (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" else (compound_statement "{\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" { (expression_statement "local_9c = CONCAT31(local_9c._1_3_,2);" (assignment_expression "local_9c = CONCAT31(local_9c._1_3_,2)" identifier = (call_expression "CONCAT31(local_9c._1_3_,2)" identifier (argument_list "(local_9c._1_3_,2)" ( (field_expression "local_9c._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_b0._4_4_ = unaff_EDI + -0xadd67;" (assignment_expression "local_b0._4_4_ = unaff_EDI + -0xadd67" (field_expression "local_b0._4_4_" identifier . field_identifier) = (binary_expression "unaff_EDI + -0xadd67" identifier + number_literal)) ;) (expression_statement "local_a8[0] = unaff_EDI + -0xb66d7;" (assignment_expression "local_a8[0] = unaff_EDI + -0xb66d7" (subscript_expression "local_a8[0]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + -0xb66d7" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" if (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" ( (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" { (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_9c == '\0') goto LAB_000f474b;" if (parenthesized_expression "((char)local_9c == '\0')" ( (binary_expression "(char)local_9c == '\0'" (cast_expression "(char)local_9c" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000f474b;" goto statement_identifier ;)) })) (expression_statement "FUN_00087b20();" (call_expression "FUN_00087b20()" identifier (argument_list "()" ( ))) ;) }))) }))) (labeled_statement "LAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);" statement_identifier : (expression_statement "piVar37 = (int *)((int)piVar37 + 1);" (assignment_expression "piVar37 = (int *)((int)piVar37 + 1)" identifier = (cast_expression "(int *)((int)piVar37 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar37 + 1)" ( (binary_expression "(int)piVar37 + 1" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a))" ( (binary_expression "(int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a)" (cast_expression "(int)piVar37" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) ;) })) (if_statement "if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }" { (expression_statement "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);" (call_expression "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" identifier (argument_list "(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" ( identifier , identifier , identifier , number_literal , (binary_expression "~local_140 >> 0x1f" (unary_expression "~local_140" ~ identifier) >> number_literal) , (binary_expression "param_2 & 0xff" identifier & number_literal) , identifier , (pointer_expression "&local_b0" & identifier) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "FUN_000ec820(iVar15,0,0);" (call_expression "FUN_000ec820(iVar15,0,0)" identifier (argument_list "(iVar15,0,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" if (parenthesized_expression "((int *)local_b0 == (int *)0x0)" ( (binary_expression "(int *)local_b0 == (int *)0x0" (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bVar39 = true;\n          }" { (expression_statement "bVar39 = true;" (assignment_expression "bVar39 = true" identifier = true) ;) }) (else_clause "else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" else (compound_statement "{\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" { (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" identifier = false) ;) (if_statement "if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" if (parenthesized_expression "((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0))" ( (binary_expression "(iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" ( (comma_expression "bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (assignment_expression "bVar39 = true" identifier = true) , (binary_expression "(*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1d) & 0x40)" ( (binary_expression "*(byte *)(iVar26 + 0x1d) & 0x40" (pointer_expression "*(byte *)(iVar26 + 0x1d)" * (cast_expression "(byte *)(iVar26 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x1d)" ( (binary_expression "iVar26 + 0x1d" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" { (expression_statement "iVar26 = FUN_00049430();" (assignment_expression "iVar26 = FUN_00049430()" identifier = (call_expression "FUN_00049430()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar39 = *(int *)(iVar26 + 8) == 0;" (assignment_expression "bVar39 = *(int *)(iVar26 + 8) == 0" identifier = (binary_expression "*(int *)(iVar26 + 8) == 0" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) == number_literal)) ;) })) }))) (expression_statement "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);" (call_expression "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" identifier (argument_list "(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" ( identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" else (compound_statement "{\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" { (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" for ( (assignment_expression "piVar34 = (int *)piVar12[0x10]" identifier = (cast_expression "(int *)piVar12[0x10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x10]" identifier [ number_literal ]))) ; (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar26 != *piVar34))" ( (binary_expression "piVar34 != (int *)0x0 && (iVar26 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar26 != *piVar34)" ( (binary_expression "iVar26 != *piVar34" identifier != (pointer_expression "*piVar34" * identifier)) ))) )) ; (assignment_expression "piVar34 = (int *)piVar34[6]" identifier = (cast_expression "(int *)piVar34[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[6]" identifier [ number_literal ]))) ) (compound_statement "{\n          }" { })) (expression_statement "FUN_0009a0c0();" (call_expression "FUN_0009a0c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);" (call_expression "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" identifier (argument_list "(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" ( (binary_expression "*(short *)((int)piVar12 + 0x2a) + 2" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_00062750(0xfffffff4);" (call_expression "FUN_00062750(0xfffffff4)" identifier (argument_list "(0xfffffff4)" ( number_literal ))) ;) (expression_statement "uVar28 = (undefined2)param_2;" (assignment_expression "uVar28 = (undefined2)param_2" identifier = (cast_expression "(undefined2)param_2" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (if_statement "if (param_2 == 0xb) {\n            uVar28 = 2;\n          }" if (parenthesized_expression "(param_2 == 0xb)" ( (binary_expression "param_2 == 0xb" identifier == number_literal) )) (compound_statement "{\n            uVar28 = 2;\n          }" { (expression_statement "uVar28 = 2;" (assignment_expression "uVar28 = 2" identifier = number_literal) ;) })) (if_statement "if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" if (parenthesized_expression "(0 < local_144[0x1a])" ( (binary_expression "0 < local_144[0x1a]" number_literal < (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" { (expression_statement "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" * (cast_expression "(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" ( (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19] + -0x16" (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19]" (binary_expression "local_144[0x1a] * 0x18" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) * number_literal) + (subscript_expression "local_144[0x19]" identifier [ number_literal ])) + number_literal) )))) = identifier) ;) })) (expression_statement "piVar34 = (int *)piVar11[0x1d];" (assignment_expression "piVar34 = (int *)piVar11[0x1d]" identifier = (cast_expression "(int *)piVar11[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }" if (parenthesized_expression "((int *)piVar11[0x1d] == (int *)0x0)" ( (binary_expression "(int *)piVar11[0x1d] == (int *)0x0" (cast_expression "(int *)piVar11[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[0x1d]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar34 = piVar11;\n          }" { (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)((int)piVar34 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)piVar34 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)piVar34 + 0x15)" * (cast_expression "(undefined1 *)((int)piVar34 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 0x15)" ( (binary_expression "(int)piVar34 + 0x15" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) })) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00073150(1);\n      }" { (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (if_statement "if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" { (expression_statement "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);" (call_expression "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" identifier (argument_list "(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" ( number_literal , number_literal , identifier , (binary_expression "local_110 - *(short *)((int)piVar12 + 0x2a)" identifier - (pointer_expression "*(short *)((int)piVar12 + 0x2a)" * (cast_expression "(short *)((int)piVar12 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x2a)" ( (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , identifier , identifier ))) ;) })) (expression_statement "FUN_0006dec0();" (call_expression "FUN_0006dec0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }" { (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" identifier (argument_list "(local_160)" ( identifier ))) ;) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" if (parenthesized_expression "(iVar23 < 0)" ( (binary_expression "iVar23 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" { (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" { (expression_statement "iVar26 = iVar23 * 0x18 + local_144[0x19];" (assignment_expression "iVar26 = iVar23 * 0x18 + local_144[0x19]" identifier = (binary_expression "iVar23 * 0x18 + local_144[0x19]" (binary_expression "iVar23 * 0x18" identifier * number_literal) + (subscript_expression "local_144[0x19]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" else (if_statement "if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" if (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" { (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" identifier (argument_list "(local_160)" ( identifier ))) ;) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" if (parenthesized_expression "(iVar23 < 0)" ( (binary_expression "iVar23 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" { (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" identifier = (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" identifier [ number_literal ]) + number_literal)) ;) })) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" identifier = (binary_expression "unaff_EDI + 0xc9455" identifier + number_literal)) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" { (expression_statement "iVar26 = local_144[0x19] + iVar23 * 0x18;" (assignment_expression "iVar26 = local_144[0x19] + iVar23 * 0x18" identifier = (binary_expression "local_144[0x19] + iVar23 * 0x18" (subscript_expression "local_144[0x19]" identifier [ number_literal ]) + (binary_expression "iVar23 * 0x18" identifier * number_literal))) ;) })) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" * (cast_expression "(int *)(iVar26 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) = (subscript_expression "local_144[0x1a]" identifier [ number_literal ])) ;) })))) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }" if (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         )" ( (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0))" ( (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" * (cast_expression "(char *)((int)piVar11 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x12)" ( (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar11[0x1e] == 0)" ( (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(piVar11[0x1c] != 0)" ( (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        FUN_000916b0();\n      }" { (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" if (parenthesized_expression "(local_16c != 0)" ( (binary_expression "local_16c != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" { (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "FUN_00061230();" (call_expression "FUN_00061230()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" if (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" * (cast_expression "(char *)(*local_144 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_144 + 0x4d)" ( (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" { (expression_statement "FUN_0006fe70(unaff_EDI + 0x6a7cc,0);" (call_expression "FUN_0006fe70(unaff_EDI + 0x6a7cc,0)" identifier (argument_list "(unaff_EDI + 0x6a7cc,0)" ( (binary_expression "unaff_EDI + 0x6a7cc" identifier + number_literal) , number_literal ))) ;) })) })) (goto_statement "goto LAB_000f3673;" goto statement_identifier ;) })) (if_statement "if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" if (parenthesized_expression "(piVar12[0xe] == 0)" ( (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }" { (expression_statement "*(int *)(iVar23 + 0x30) = local_f0;" (assignment_expression "*(int *)(iVar23 + 0x30) = local_f0" (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_3[5] = iVar23;" (assignment_expression "param_3[5] = iVar23" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[7] = local_f0;" (assignment_expression "param_3[7] = local_f0" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[6] = iVar16;" (assignment_expression "param_3[6] = iVar16" (subscript_expression "param_3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar34 = (int *)*param_3;" (assignment_expression "piVar34 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "param_3[8] = local_ec;" (assignment_expression "param_3[8] = local_ec" (subscript_expression "param_3[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier = (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" identifier (argument_list "(local_b0._4_4_,(int *)local_b0)" ( (field_expression "local_b0._4_4_" identifier . field_identifier) , (cast_expression "(int *)local_b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" if (parenthesized_expression "(piVar34 != (int *)0x0)" ( (binary_expression "piVar34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);" do (compound_statement "{\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        }" { (expression_statement "*(undefined4 *)((int)local_a8 + uVar35) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + uVar35) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + uVar35)" * (cast_expression "(undefined4 *)((int)local_a8 + uVar35)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + uVar35)" ( (binary_expression "(int)local_a8 + uVar35" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" identifier = (binary_expression "uVar35 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < 0x18)" ( (binary_expression "uVar35 < 0x18" identifier < number_literal) )) ;) (expression_statement "local_b0 = uVar41;" (assignment_expression "local_b0 = uVar41" identifier = identifier) ;) (if_statement "if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" if (parenthesized_expression "(0 < *piVar34)" ( (binary_expression "0 < *piVar34" number_literal < (pointer_expression "*piVar34" * identifier)) )) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);" do (compound_statement "{\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "iVar22 = FUN_00089330();" (assignment_expression "iVar22 = FUN_00089330()" identifier = (call_expression "FUN_00089330()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar22 != 0) goto LAB_000f3d98;" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < *piVar34)" ( (binary_expression "iVar18 < *piVar34" identifier < (pointer_expression "*piVar34" * identifier)) )) ;) })) (expression_statement "iVar18 = FUN_00089330();" (assignment_expression "iVar18 = FUN_00089330()" identifier = (call_expression "FUN_00089330()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" { (expression_statement "iVar18 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar23 + 0x18)" identifier = (pointer_expression "*(int *)(iVar23 + 0x18)" * (cast_expression "(int *)(iVar23 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (uint *)*param_3;" (assignment_expression "puVar8 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar9 = *(undefined4 *)(iVar23 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(iVar23 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar23 + 0x30)" * (cast_expression "(undefined4 *)(iVar23 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" if (parenthesized_expression "((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))))" ( (binary_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" (parenthesized_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1))" ( (binary_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)" (parenthesized_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar18 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar18 + 0x24) & 0x20)" ( (binary_expression "*(byte *)(iVar18 + 0x24) & 0x20" (pointer_expression "*(byte *)(iVar18 + 0x24)" * (cast_expression "(byte *)(iVar18 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*puVar8 != 1)" ( (binary_expression "*puVar8 != 1" (pointer_expression "*puVar8" * identifier) != number_literal) ))) )) || (parenthesized_expression "((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" ( (parenthesized_expression "(*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))" ( (binary_expression "*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)" (binary_expression "*(char *)puVar8[1] != -0x62" (pointer_expression "*(char *)puVar8[1]" * (cast_expression "(char *)puVar8[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) != number_literal) || (parenthesized_expression "(*(int *)((char *)puVar8[1] + 0x20) != -1)" ( (binary_expression "*(int *)((char *)puVar8[1] + 0x20) != -1" (pointer_expression "*(int *)((char *)puVar8[1] + 0x20)" * (cast_expression "(int *)((char *)puVar8[1] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)puVar8[1] + 0x20)" ( (binary_expression "(char *)puVar8[1] + 0x20" (cast_expression "(char *)puVar8[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ])) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" { (expression_statement "piVar37 = (int *)local_90;" (assignment_expression "piVar37 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" for ( (assignment_expression "iVar23 = 0x1c" identifier = number_literal) ; (binary_expression "iVar23 != 0" identifier != number_literal) ; (assignment_expression "iVar23 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ) (compound_statement "{\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" { (expression_statement "*piVar37 = 0;" (assignment_expression "*piVar37 = 0" (pointer_expression "*piVar37" * identifier) = number_literal) ;) (expression_statement "piVar37 = piVar37 + (uint)bVar40 * -2 + 1;" (assignment_expression "piVar37 = piVar37 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "piVar37 + (uint)bVar40 * -2 + 1" (binary_expression "piVar37 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_58[0] = 0x9e;" (assignment_expression "local_58[0] = 0x9e" (subscript_expression "local_58[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_90[0] = 0x66;" (assignment_expression "local_90[0] = 0x66" (subscript_expression "local_90[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" identifier = (cast_expression "(int *)local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" for ( (assignment_expression "iVar23 = *(int *)(iVar18 + 8)" identifier = (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) ))))) ; (binary_expression "iVar23 != 0" identifier != number_literal) ; (assignment_expression "iVar23 = *(int *)(iVar23 + 0x14)" identifier = (pointer_expression "*(int *)(iVar23 + 0x14)" * (cast_expression "(int *)(iVar23 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) ))))) ) (compound_statement "{\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" { (if_statement "if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" if (parenthesized_expression "((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35))" ( (binary_expression "(*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" (parenthesized_expression "(*(char *)(iVar23 + 0x36) != '\0')" ( (binary_expression "*(char *)(iVar23 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar23 + 0x36)" * (cast_expression "(char *)(iVar23 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x36)" ( (binary_expression "iVar23 + 0x36" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" ( (comma_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar23 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x32)" ( (binary_expression "iVar23 + 0x32" identifier + number_literal) ))))) , (binary_expression "*puVar8 == uVar35" (pointer_expression "*puVar8" * identifier) == identifier)) ))) )) (compound_statement "{\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" { (expression_statement "iVar22 = *(int *)(iVar23 + 0x24);" (assignment_expression "iVar22 = *(int *)(iVar23 + 0x24)" identifier = (pointer_expression "*(int *)(iVar23 + 0x24)" * (cast_expression "(int *)(iVar23 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x24)" ( (binary_expression "iVar23 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }" { (labeled_statement "LAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" statement_identifier : (if_statement "if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" { (labeled_statement "LAB_000f50dd:\n                    param_3[4] = iVar23;" statement_identifier : (expression_statement "param_3[4] = iVar23;" (assignment_expression "param_3[4] = iVar23" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;)) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) }))) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" { (expression_statement "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);" (assignment_expression "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 0x20) + uVar27 * 4)" ( (binary_expression "*(int *)(iVar23 + 0x20) + uVar27 * 4" (pointer_expression "*(int *)(iVar23 + 0x20)" * (cast_expression "(int *)(iVar23 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) + (binary_expression "uVar27 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" if (parenthesized_expression "(*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2)" ( (binary_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2" (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" * (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) )))) + (binary_expression "uVar27 * 2" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }" { (expression_statement "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);" (assignment_expression "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" * (cast_expression "(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" ( (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4" (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14" (pointer_expression "*(int *)(iVar23 + 0x28)" * (cast_expression "(int *)(iVar23 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x28)" ( (binary_expression "iVar23 + 0x28" identifier + number_literal) )))) + (binary_expression "uVar27 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" identifier = identifier) ;) (if_statement "if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" if (parenthesized_expression "((char)*piVar37 != 'f')" ( (binary_expression "(char)*piVar37 != 'f'" (cast_expression "(char)*piVar37" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*piVar37" * identifier)) != (char_literal "'f'" ' character ')) )) (compound_statement "{\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" { (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_84 = piVar37;" (assignment_expression "local_84 = piVar37" identifier = identifier) ;) })) }) (else_clause "else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" else (compound_statement "{\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" { (expression_statement "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);" (assignment_expression "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" identifier = (cast_expression "(int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" * (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" ( (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" * (cast_expression "(int *)(iVar23 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 4)" ( (binary_expression "iVar23 + 4" identifier + number_literal) )))) + (binary_expression "uVar27 * 2" identifier * number_literal)) )))))) ;) (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" identifier = (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" identifier = (cast_expression "(int *)local_58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" { (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" identifier = (call_expression "FUN_000872a0(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar22 = extraout_ECX_02;" (assignment_expression "iVar22 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (iVar18 < 2) break;" if (parenthesized_expression "(iVar18 < 2)" ( (binary_expression "iVar18 < 2" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_160 = local_160 + 1;" (assignment_expression "local_160 = local_160 + 1" identifier = (binary_expression "local_160 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 == local_160) goto LAB_000f4fe0;" if (parenthesized_expression "(uVar35 == local_160)" ( (binary_expression "uVar35 == local_160" identifier == identifier) )) (goto_statement "goto LAB_000f4fe0;" goto statement_identifier ;)) })) (if_statement "if ((int)uVar35 <= (int)local_160) break;" if (parenthesized_expression "((int)uVar35 <= (int)local_160)" ( (binary_expression "(int)uVar35 <= (int)local_160" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_160" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 == uVar27) goto LAB_000f50dd;" if (parenthesized_expression "(uVar35 == uVar27)" ( (binary_expression "uVar35 == uVar27" identifier == identifier) )) (goto_statement "goto LAB_000f50dd;" goto statement_identifier ;)) })) }) (else_clause "else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" else (if_statement "if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" if (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" { (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" identifier = (call_expression "FUN_000872a0(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar22 = extraout_ECX_01;" (assignment_expression "iVar22 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" { (expression_statement "uVar35 = (uint)*(ushort *)(iVar23 + 0x32);" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" identifier = (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar23 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x32)" ( (binary_expression "iVar23 + 0x32" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000f502a;" goto statement_identifier ;) })) })))) })) (labeled_statement "LAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" statement_identifier : (ERROR "}" }) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" identifier (argument_list "(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" ( identifier , (binary_expression "unaff_EDI + 0x77d7d" identifier + number_literal) , identifier , identifier ))) ;)) })) })) })) (goto_statement "goto LAB_000f3d98;" goto statement_identifier ;) })) (expression_statement "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);" (call_expression "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" identifier (argument_list "(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" ( identifier , (binary_expression "&UNK_00077d4d + unaff_EDI" (pointer_expression "&UNK_00077d4d" & identifier) + identifier) , (pointer_expression "*piVar12" * identifier) , identifier ))) ;) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" identifier = identifier) ;) (if_statement "if (local_148 != (int *)0x0) goto LAB_000f3688;" if (parenthesized_expression "(local_148 != (int *)0x0)" ( (binary_expression "local_148 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f3688;" goto statement_identifier ;)) }) (else_clause "else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" else (compound_statement "{\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" { (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;" statement_identifier : (if_statement "if (param_3 == (int *)0x0) goto LAB_000f370c;" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f370c;" goto statement_identifier ;))) }))) (labeled_statement "LAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }" statement_identifier : (if_statement "if (*param_3 != 0) {\n    FUN_00063e30();\n  }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n    FUN_00063e30();\n  }" { (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (param_3[1] != 0) {\n    FUN_00063d60();\n  }" if (parenthesized_expression "(param_3[1] != 0)" ( (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063d60();\n  }" { (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_3[2] != 0) {\n    FUN_00063e30();\n  }" if (parenthesized_expression "(param_3[2] != 0)" ( (binary_expression "param_3[2] != 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063e30();\n  }" { (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_3[3] != 0) {\n    FUN_00063d60();\n  }" if (parenthesized_expression "(param_3[3] != 0)" ( (binary_expression "param_3[3] != 0" (subscript_expression "param_3[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00063d60();\n  }" { (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" statement_identifier : (if_statement "if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" if (parenthesized_expression "(local_158 != (int *)0x0)" ( (binary_expression "local_158 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00063a90();\n  }" { (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_0005b000();\n  }" { (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }" if (parenthesized_expression "(local_17c != (int *)0x0)" ( (binary_expression "local_17c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00044090();\n  }" { (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (abstract_pointer_declarator *)) ) 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (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 (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 ( ))))) ;) (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)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto 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 (call_expression IDENT (argument_list ( ))) ;) (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 *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (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) )))) )))) ;) (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)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_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 ( ))))) , (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (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) )) != LIT) ))) )) ))) )) ))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]))) != 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))) ))) )) ))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) ))) ^ LIT) )) & LIT) )) != (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) ))) ^ LIT) )) & LIT) ))) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) , (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) )) ))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_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) )))) != (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 = (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 IDENT == LIT) )) (goto_statement goto 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 ( (parenthesized_expression ( (binary_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 ( (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 ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (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 (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 IDENT + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (binary_expression IDENT == LIT) )))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != LIT))) )))) )) ))) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 (assignment_expression IDENT = LIT) ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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 = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) || (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) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + 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) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) + LIT) ])) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) < LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) + (subscript_expression IDENT [ LIT ])) + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) + (subscript_expression IDENT [ LIT ])) + LIT) )))) = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( 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) )))) & 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) ))))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (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 (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (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) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) + (subscript_expression IDENT [ LIT ])) + LIT) )))) = (binary_expression IDENT | LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( 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 ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_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) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT) ^ LIT) )) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + IDENT) ]) == (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + IDENT) ])) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ]) == (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + IDENT) ])) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) }))) (expression_statement (assignment_expression IDENT = (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 IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (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) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 *)) ) IDENT)) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (compound_statement { (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 IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (binary_expression IDENT & LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (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 *)) ) LIT)) ;) (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (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 + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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 (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ; (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) ))) )) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) & IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (for_statement for ( (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) + LIT) ])) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (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 + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) & IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != BOOL) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])))) ;) }))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) & LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (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) - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) })) (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 = (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))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) != IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))))) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) & (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT + LIT) + IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_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)) ;) })))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 (pointer_expression * IDENT) + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ 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 (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression IDENT * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT & LIT) | (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]))) == (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])))) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (subscript_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) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (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)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression IDENT * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) }) (else_clause else (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 ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) }))))))) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (subscript_expression IDENT [ LIT ]))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) }))) (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) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , (binary_expression (unary_expression ~ IDENT) >> LIT) , (binary_expression IDENT & LIT) , IDENT , (pointer_expression & IDENT) , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = BOOL) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 , IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ; (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) ))) )) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) + (subscript_expression IDENT [ LIT ])) + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (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 ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (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 * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (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 (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) ;) })) (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 = (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 *)) ) (pointer_expression * IDENT))) ;) (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 (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) )) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) != LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (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 IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * IDENT) == IDENT)) ))) )) (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 IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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 IDENT * LIT)) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (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 IDENT * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })))) })) (labeled_statement statement_identifier : (ERROR }) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;)) })) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (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 ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (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 ( ))) ;) }))) (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 ( ))) ;) })) (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 ( ))) ;) })) (labeled_statement statement_identifier : (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 { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })))
(function_definition "void FUN_000f3560(int *param_1,uint param_2,int *param_3)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" (primitive_type "void") (function_declarator "FUN_000f3560(int *param_1,uint param_2,int *param_3)" (identifier "FUN_000f3560") (parameter_list "(int *param_1,uint param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined1 uVar3;\n  short sVar4;\n  ushort uVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  uint *puVar8;\n  undefined4 uVar9;\n  bool bVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  byte *pbVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int *extraout_ECX;\n  int extraout_ECX_00;\n  uint uVar27;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  int extraout_ECX_06;\n  undefined2 uVar28;\n  byte *pbVar29;\n  int extraout_EDX;\n  int *piVar30;\n  int *piVar31;\n  char *pcVar32;\n  ushort uVar33;\n  int *piVar34;\n  uint uVar35;\n  undefined4 *puVar36;\n  int unaff_EDI;\n  int *piVar37;\n  undefined4 *puVar38;\n  int in_GS_OFFSET;\n  bool bVar39;\n  byte bVar40;\n  undefined8 uVar41;\n  undefined8 uVar42;\n  int *local_17c;\n  byte *local_174;\n  uint local_170;\n  uint local_16c;\n  int *local_168;\n  uint local_160;\n  int *local_158;\n  uint local_14c;\n  int *local_148;\n  int *local_144;\n  uint local_140;\n  undefined4 local_138;\n  int local_134;\n  uint local_130;\n  int local_12c;\n  int local_118;\n  int local_110;\n  int local_f0;\n  int local_ec;\n  byte local_e8 [4];\n  undefined1 local_e4;\n  int local_e0;\n  int local_dc;\n  int local_d8;\n  undefined4 local_d4;\n  int *local_cc;\n  int local_c8;\n  int local_c4;\n  undefined4 local_c0;\n  undefined8 *local_b4;\n  undefined8 local_b0;\n  int local_a8 [3];\n  int local_9c;\n  uint local_98;\n  undefined1 local_90 [8];\n  undefined4 local_88;\n  int *local_84;\n  undefined1 local_58 [28];\n  undefined4 local_3c;\n  int local_38;\n  int local_20;\n  \n  bVar40 = 0;\n  uVar41 = FUN_0003a401();\n  iVar23 = (int)((ulonglong)uVar41 >> 0x20);\n  piVar11 = (int *)uVar41;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar26 = *piVar11;\n  local_f0 = 0;\n  local_ec = 0;\n  local_158 = extraout_ECX;\n  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined1 uVar3;" (type_identifier "undefined1") (identifier "uVar3") (; ";")) (declaration "short sVar4;" (sized_type_specifier "short" (short "short")) (identifier "sVar4") (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "int *extraout_ECX;" (primitive_type "int") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "int extraout_ECX_00;" (primitive_type "int") (identifier "extraout_ECX_00") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "int extraout_ECX_01;" (primitive_type "int") (identifier "extraout_ECX_01") (; ";")) (declaration "int extraout_ECX_02;" (primitive_type "int") (identifier "extraout_ECX_02") (; ";")) (declaration "int extraout_ECX_03;" (primitive_type "int") (identifier "extraout_ECX_03") (; ";")) (declaration "undefined4 extraout_ECX_04;" (type_identifier "undefined4") (identifier "extraout_ECX_04") (; ";")) (declaration "undefined4 extraout_ECX_05;" (type_identifier "undefined4") (identifier "extraout_ECX_05") (; ";")) (declaration "int extraout_ECX_06;" (primitive_type "int") (identifier "extraout_ECX_06") (; ";")) (declaration "undefined2 uVar28;" (type_identifier "undefined2") (identifier "uVar28") (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "int *piVar30;" (primitive_type "int") (pointer_declarator "*piVar30" (* "*") (identifier "piVar30")) (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (declaration "char *pcVar32;" (primitive_type "char") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "ushort uVar33;" (type_identifier "ushort") (identifier "uVar33") (; ";")) (declaration "int *piVar34;" (primitive_type "int") (pointer_declarator "*piVar34" (* "*") (identifier "piVar34")) (; ";")) (declaration "uint uVar35;" (type_identifier "uint") (identifier "uVar35") (; ";")) (declaration "undefined4 *puVar36;" (type_identifier "undefined4") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int *piVar37;" (primitive_type "int") (pointer_declarator "*piVar37" (* "*") (identifier "piVar37")) (; ";")) (declaration "undefined4 *puVar38;" (type_identifier "undefined4") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar39;" (primitive_type "bool") (identifier "bVar39") (; ";")) (declaration "byte bVar40;" (type_identifier "byte") (identifier "bVar40") (; ";")) (declaration "undefined8 uVar41;" (type_identifier "undefined8") (identifier "uVar41") (; ";")) (declaration "undefined8 uVar42;" (type_identifier "undefined8") (identifier "uVar42") (; ";")) (declaration "int *local_17c;" (primitive_type "int") (pointer_declarator "*local_17c" (* "*") (identifier "local_17c")) (; ";")) (declaration "byte *local_174;" (type_identifier "byte") (pointer_declarator "*local_174" (* "*") (identifier "local_174")) (; ";")) (declaration "uint local_170;" (type_identifier "uint") (identifier "local_170") (; ";")) (declaration "uint local_16c;" (type_identifier "uint") (identifier "local_16c") (; ";")) (declaration "int *local_168;" (primitive_type "int") (pointer_declarator "*local_168" (* "*") (identifier "local_168")) (; ";")) (declaration "uint local_160;" (type_identifier "uint") (identifier "local_160") (; ";")) (declaration "int *local_158;" (primitive_type "int") (pointer_declarator "*local_158" (* "*") (identifier "local_158")) (; ";")) (declaration "uint local_14c;" (type_identifier "uint") (identifier "local_14c") (; ";")) (declaration "int *local_148;" (primitive_type "int") (pointer_declarator "*local_148" (* "*") (identifier "local_148")) (; ";")) (declaration "int *local_144;" (primitive_type "int") (pointer_declarator "*local_144" (* "*") (identifier "local_144")) (; ";")) (declaration "uint local_140;" (type_identifier "uint") (identifier "local_140") (; ";")) (declaration "undefined4 local_138;" (type_identifier "undefined4") (identifier "local_138") (; ";")) (declaration "int local_134;" (primitive_type "int") (identifier "local_134") (; ";")) (declaration "uint local_130;" (type_identifier "uint") (identifier "local_130") (; ";")) (declaration "int local_12c;" (primitive_type "int") (identifier "local_12c") (; ";")) (declaration "int local_118;" (primitive_type "int") (identifier "local_118") (; ";")) (declaration "int local_110;" (primitive_type "int") (identifier "local_110") (; ";")) (declaration "int local_f0;" (primitive_type "int") (identifier "local_f0") (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "byte local_e8 [4];" (type_identifier "byte") (array_declarator "local_e8 [4]" (identifier "local_e8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_e4;" (type_identifier "undefined1") (identifier "local_e4") (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "int local_dc;" (primitive_type "int") (identifier "local_dc") (; ";")) (declaration "int local_d8;" (primitive_type "int") (identifier "local_d8") (; ";")) (declaration "undefined4 local_d4;" (type_identifier "undefined4") (identifier "local_d4") (; ";")) (declaration "int *local_cc;" (primitive_type "int") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "undefined8 *local_b4;" (type_identifier "undefined8") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "undefined8 local_b0;" (type_identifier "undefined8") (identifier "local_b0") (; ";")) (declaration "int local_a8 [3];" (primitive_type "int") (array_declarator "local_a8 [3]" (identifier "local_a8") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "undefined1 local_90 [8];" (type_identifier "undefined1") (array_declarator "local_90 [8]" (identifier "local_90") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "undefined1 local_58 [28];" (type_identifier "undefined1") (array_declarator "local_58 [28]" (identifier "local_58") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" (identifier "bVar40") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar41 = FUN_0003a401();" (assignment_expression "uVar41 = FUN_0003a401()" (identifier "uVar41") (= "=") (call_expression "FUN_0003a401()" (identifier "FUN_0003a401") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar23 = (int)((ulonglong)uVar41 >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)uVar41 >> 0x20)" (identifier "iVar23") (= "=") (cast_expression "(int)((ulonglong)uVar41 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar41 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar41 >> 0x20" (cast_expression "(ulonglong)uVar41" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar11 = (int *)uVar41;" (assignment_expression "piVar11 = (int *)uVar41" (identifier "piVar11") (= "=") (cast_expression "(int *)uVar41" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar41"))) (; ";")) (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 "iVar26 = *piVar11;" (assignment_expression "iVar26 = *piVar11" (identifier "iVar26") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_158 = extraout_ECX;" (assignment_expression "local_158 = extraout_ECX" (identifier "local_158") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" (if "if") (parenthesized_expression "((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0'))" (( "(") (binary_expression "(piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')" (parenthesized_expression "(piVar11[9] == 0)" (( "(") (binary_expression "piVar11[9] == 0" (subscript_expression "piVar11[9]" (identifier "piVar11") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar26 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar26 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" (* "*") (cast_expression "(char *)(iVar26 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x4d)" (( "(") (binary_expression "iVar26 + 0x4d" (identifier "iVar26") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    local_e0 = 0;\n    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }\n    piVar12 = (int *)FUN_000ed210();\n    if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }\n    local_148 = (int *)0x0;\nLAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }\n    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));\n    if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }\n    uVar6 = piVar12[9];\n    iVar14 = FUN_00049a60(0,local_e8);\n    iVar13 = piVar12[3];\n    iVar15 = FUN_000d9b60();\n    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;\n    if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }\n    FUN_000bcbf0();\n    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }\nLAB_000f380e:\n    local_118 = 0;\n    if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }\n    local_110 = piVar11[0xb];\n    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);\n    iVar15 = local_110 + 1;\n    piVar11[0xb] = iVar16;\n    local_12c = iVar15;\n    if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }\n    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;\n    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }\n    iVar16 = local_12c + 1;\n    if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }\n    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);\n    if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }\n    if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\n    piVar34 = (int *)((int)piVar34 - iVar18);\n    if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }\nLAB_000f3caf:\n    local_16c = 0;\n    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }\n    local_168 = (int *)0x0;\n    if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }\n    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n    if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }\n    if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }\nLAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[1] != 0) {\n    FUN_00063d60();\n  }\n  if (param_3[2] != 0) {\n    FUN_00063e30();\n  }\n  if (param_3[3] != 0) {\n    FUN_00063d60();\n  }\n  FUN_00044090();\nLAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }\n  if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }\n  if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }\nLAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00153870();\n}" ({ "{") (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)) {\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" (if "if") (parenthesized_expression "(((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0))" (( "(") (binary_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&\n       (extraout_ECX[0xd] == 0)" (parenthesized_expression "((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0))" (( "(") (binary_expression "(extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" (parenthesized_expression "(extraout_ECX != (int *)0x0)" (( "(") (binary_expression "extraout_ECX != (int *)0x0" (identifier "extraout_ECX") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)extraout_ECX + 9) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((int)extraout_ECX + 9) & 2) != 0" (parenthesized_expression "(*(byte *)((int)extraout_ECX + 9) & 2)" (( "(") (binary_expression "*(byte *)((int)extraout_ECX + 9) & 2" (pointer_expression "*(byte *)((int)extraout_ECX + 9)" (* "*") (cast_expression "(byte *)((int)extraout_ECX + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)extraout_ECX + 9)" (( "(") (binary_expression "(int)extraout_ECX + 9" (cast_expression "(int)extraout_ECX" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "extraout_ECX")) (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(extraout_ECX[0xd] == 0)" (( "(") (binary_expression "extraout_ECX[0xd] == 0" (subscript_expression "extraout_ECX[0xd]" (identifier "extraout_ECX") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      local_148 = (int *)*extraout_ECX;\n      *extraout_ECX = 0;\n      FUN_00063a90();\n      piVar12 = (int *)FUN_000ed210();\n      local_158 = piVar12;\n      if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }\n      goto LAB_000f366b;\n    }" ({ "{") (expression_statement "local_148 = (int *)*extraout_ECX;" (assignment_expression "local_148 = (int *)*extraout_ECX" (identifier "local_148") (= "=") (cast_expression "(int *)*extraout_ECX" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")))) (; ";")) (expression_statement "*extraout_ECX = 0;" (assignment_expression "*extraout_ECX = 0" (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" (identifier "FUN_00063a90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" (identifier "piVar12") (= "=") (cast_expression "(int *)FUN_000ed210()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ed210()" (identifier "FUN_000ed210") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_158 = piVar12;" (assignment_expression "local_158 = piVar12" (identifier "local_158") (= "=") (identifier "piVar12")) (; ";")) (if_statement "if (piVar12 != (int *)0x0) {\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_158 = (int *)0x0;\n        goto LAB_000f3620;\n      }" ({ "{") (expression_statement "local_158 = (int *)0x0;" (assignment_expression "local_158 = (int *)0x0" (identifier "local_158") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000f3620;" (goto "goto") (statement_identifier "LAB_000f3620") (; ";")) (} "}"))) (goto_statement "goto LAB_000f366b;" (goto "goto") (statement_identifier "LAB_000f366b") (; ";")) (} "}"))) (expression_statement "piVar12 = (int *)FUN_000ed210();" (assignment_expression "piVar12 = (int *)FUN_000ed210()" (identifier "piVar12") (= "=") (cast_expression "(int *)FUN_000ed210()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ed210()" (identifier "FUN_000ed210") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar12 == (int *)0x0) {\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_000638a0();\n      local_17c = (int *)0x0;\n      goto LAB_000f36a8;\n    }" ({ "{") (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" (identifier "FUN_000638a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000f36a8;" (goto "goto") (statement_identifier "LAB_000f36a8") (; ";")) (} "}"))) (expression_statement "local_148 = (int *)0x0;" (assignment_expression "local_148 = (int *)0x0" (identifier "local_148") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000f3620:\n    if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" (statement_identifier "LAB_000f3620") (: ":") (if_statement "if (piVar12[0x12] == 0) {\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }\n    else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" (if "if") (parenthesized_expression "(piVar12[0x12] == 0)" (( "(") (binary_expression "piVar12[0x12] == 0" (subscript_expression "piVar12[0x12]" (identifier "piVar12") ([ "[") (number_literal "0x12") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar13 = -16000000;\n      local_134 = -1000000;\n    }" ({ "{") (expression_statement "iVar13 = -16000000;" (assignment_expression "iVar13 = -16000000" (identifier "iVar13") (= "=") (number_literal "-16000000")) (; ";")) (expression_statement "local_134 = -1000000;" (assignment_expression "local_134 = -1000000" (identifier "local_134") (= "=") (number_literal "-1000000")) (; ";")) (} "}")) (else_clause "else {\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" (else "else") (compound_statement "{\n      local_134 = FUN_00046080();\n      iVar13 = local_134 << 4;\n    }" ({ "{") (expression_statement "local_134 = FUN_00046080();" (assignment_expression "local_134 = FUN_00046080()" (identifier "local_134") (= "=") (call_expression "FUN_00046080()" (identifier "FUN_00046080") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar13 = local_134 << 4;" (assignment_expression "iVar13 = local_134 << 4" (identifier "iVar13") (= "=") (binary_expression "local_134 << 4" (identifier "local_134") (<< "<<") (number_literal "4"))) (; ";")) (} "}"))))) (expression_statement "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));" (assignment_expression "iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" (identifier "iVar13") (= "=") (call_expression "FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" (identifier "FUN_00088da0") (argument_list "(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13))" (( "(") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar26 + 0x10) + iVar13)" (( "(") (binary_expression "*(int *)(iVar26 + 0x10) + iVar13" (pointer_expression "*(int *)(iVar26 + 0x10)" (* "*") (cast_expression "(int *)(iVar26 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x10)" (( "(") (binary_expression "iVar26 + 0x10" (identifier "iVar26") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar13")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000f366b:\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\nLAB_000f3673:\n      FUN_000638a0();\n      if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }\n      goto LAB_000f36a8;\n    }" ({ "{") (labeled_statement "LAB_000f366b:\n      local_17c = (int *)0x0;" (statement_identifier "LAB_000f366b") (: ":") (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (labeled_statement "LAB_000f3673:\n      FUN_000638a0();" (statement_identifier "LAB_000f3673") (: ":") (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" (identifier "FUN_000638a0") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (local_148 != (int *)0x0) {\nLAB_000f3688:\n        FUN_00063e30();\n      }" (if "if") (parenthesized_expression "(local_148 != (int *)0x0)" (( "(") (binary_expression "local_148 != (int *)0x0" (identifier "local_148") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000f3688:\n        FUN_00063e30();\n      }" ({ "{") (labeled_statement "LAB_000f3688:\n        FUN_00063e30();" (statement_identifier "LAB_000f3688") (: ":") (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" (identifier "FUN_00063e30") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_000f36a8;" (goto "goto") (statement_identifier "LAB_000f36a8") (; ";")) (} "}"))) (expression_statement "uVar6 = piVar12[9];" (assignment_expression "uVar6 = piVar12[9]" (identifier "uVar6") (= "=") (subscript_expression "piVar12[9]" (identifier "piVar12") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "iVar14 = FUN_00049a60(0,local_e8);" (assignment_expression "iVar14 = FUN_00049a60(0,local_e8)" (identifier "iVar14") (= "=") (call_expression "FUN_00049a60(0,local_e8)" (identifier "FUN_00049a60") (argument_list "(0,local_e8)" (( "(") (number_literal "0") (, ",") (identifier "local_e8") () ")")))) (; ";")) (expression_statement "iVar13 = piVar12[3];" (assignment_expression "iVar13 = piVar12[3]" (identifier "iVar13") (= "=") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar15 = FUN_000d9b60();" (assignment_expression "iVar15 = FUN_000d9b60()" (identifier "iVar15") (= "=") (call_expression "FUN_000d9b60()" (identifier "FUN_000d9b60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;" (if "if") (parenthesized_expression "(((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))))" (( "(") (binary_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||\n       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" (parenthesized_expression "((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0))" (( "(") (binary_expression "(iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar15 = FUN_0008b7b0(), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0008b7b0(), iVar15 != 0" (assignment_expression "iVar15 = FUN_0008b7b0()" (identifier "iVar15") (= "=") (call_expression "FUN_0008b7b0()" (identifier "FUN_0008b7b0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))" (( "(") (parenthesized_expression "(local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0))" (( "(") (comma_expression "local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (assignment_expression "local_144 = (int *)piVar11[2]" (identifier "local_144") (= "=") (cast_expression "(int *)piVar11[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")))) (, ",") (binary_expression "local_144 == (int *)0x0 &&\n        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (binary_expression "local_144 == (int *)0x0" (identifier "local_144") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)" (( "(") (comma_expression "local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0" (assignment_expression "local_144 = (int *)FUN_00073350()" (identifier "local_144") (= "=") (cast_expression "(int *)FUN_00073350()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00073350()" (identifier "FUN_00073350") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "local_144 == (int *)0x0" (identifier "local_144") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000f366b;" (goto "goto") (statement_identifier "LAB_000f366b") (; ";"))) (if_statement "if (*(char *)((int)piVar11 + 0x12) == '\0') {\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" (if "if") (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x12)" (( "(") (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;\n    }" ({ "{") (expression_statement "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;" (assignment_expression "*(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" (* "*") (cast_expression "(byte *)((int)local_144 + 0x8d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_144 + 0x8d)" (( "(") (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_144")) (+ "+") (number_literal "0x8d")) () ")")))) (= "=") (binary_expression "*(byte *)((int)local_144 + 0x8d) | 0x20" (pointer_expression "*(byte *)((int)local_144 + 0x8d)" (* "*") (cast_expression "(byte *)((int)local_144 + 0x8d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_144 + 0x8d)" (( "(") (binary_expression "(int)local_144 + 0x8d" (cast_expression "(int)local_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_144")) (+ "+") (number_literal "0x8d")) () ")")))) (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "FUN_000bcbf0();" (call_expression "FUN_000bcbf0()" (identifier "FUN_000bcbf0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" (if "if") (parenthesized_expression "(((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0))))" (( "(") (binary_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&\n       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" (parenthesized_expression "((param_1 == (int *)0x0) && (local_158 != (int *)0x0))" (( "(") (binary_expression "(param_1 == (int *)0x0) && (local_158 != (int *)0x0)" (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_158 != (int *)0x0)" (( "(") (binary_expression "local_158 != (int *)0x0" (identifier "local_158") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((piVar11[0x41] == 0 && (local_158[0x10] == 0)))" (( "(") (parenthesized_expression "(piVar11[0x41] == 0 && (local_158[0x10] == 0))" (( "(") (binary_expression "piVar11[0x41] == 0 && (local_158[0x10] == 0)" (binary_expression "piVar11[0x41] == 0" (subscript_expression "piVar11[0x41]" (identifier "piVar11") ([ "[") (number_literal "0x41") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(local_158[0x10] == 0)" (( "(") (binary_expression "local_158[0x10] == 0" (subscript_expression "local_158[0x10]" (identifier "local_158") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      iVar15 = *piVar11;\n      iVar16 = FUN_000460a0();\n      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;\n      local_14c = param_2;\n      if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }\n      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;\n      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }\n      local_170 = 0;\n      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }\n      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;\n      if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }\n      piVar34 = (int *)piVar11[2];\n      if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }\n      FUN_000bca90();\n      local_12c = 0;\n      piVar11[10] = piVar11[10] + 2;\n      if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }\n      cVar2 = *(char *)((int)piVar11 + 0x13);\n      if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }\n      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);\n      iVar16 = extraout_ECX_03;\n      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }\n      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }\n      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }\n      if (local_16c != 0) {\n        FUN_00045e10();\n      }\n      if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }\n      if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }\n      goto LAB_000f3673;\n    }" ({ "{") (expression_statement "iVar15 = *piVar11;" (assignment_expression "iVar15 = *piVar11" (identifier "iVar15") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "iVar16 = FUN_000460a0();" (assignment_expression "iVar16 = FUN_000460a0()" (identifier "iVar16") (= "=") (call_expression "FUN_000460a0()" (identifier "FUN_000460a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;" (if "if") (parenthesized_expression "((iVar16 != 0) || (piVar12[0xe] != 0))" (( "(") (binary_expression "(iVar16 != 0) || (piVar12[0xe] != 0)" (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar12[0xe] != 0)" (( "(") (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (expression_statement "local_14c = param_2;" (assignment_expression "local_14c = param_2" (identifier "local_14c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {\n        local_14c = 2;\n      }" (if "if") (parenthesized_expression "((param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))))" (( "(") (binary_expression "(param_2 == 0xb) &&\n         ((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" (parenthesized_expression "(param_2 == 0xb)" (( "(") (binary_expression "param_2 == 0xb" (identifier "param_2") (== "==") (number_literal "0xb")) () ")")) (&& "&&") (parenthesized_expression "((local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))" (( "(") (parenthesized_expression "(local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb))" (( "(") (comma_expression "local_14c = 2, -1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (assignment_expression "local_14c = 2" (identifier "local_14c") (= "=") (number_literal "2")) (, ",") (binary_expression "-1 < (short)piVar12[10] &&\n          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (binary_expression "-1 < (short)piVar12[10]" (number_literal "-1") (< "<") (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]")))) (&& "&&") (parenthesized_expression "(local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)" (( "(") (comma_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb" (assignment_expression "local_14c = (uint)*(byte *)(piVar12 + 0xc)" (identifier "local_14c") (= "=") (binary_expression "(uint)*(byte *)(piVar12 + 0xc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(piVar12 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12 + 0xc)" (( "(") (binary_expression "piVar12 + 0xc" (identifier "piVar12") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "local_14c == 0xb" (identifier "local_14c") (== "==") (number_literal "0xb"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        local_14c = 2;\n      }" ({ "{") (expression_statement "local_14c = 2;" (assignment_expression "local_14c = 2" (identifier "local_14c") (= "=") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;" (if "if") (parenthesized_expression "((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))))" (( "(") (binary_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||\n         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" (parenthesized_expression "(((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))))" (( "(") (binary_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||\n          ((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" (parenthesized_expression "((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))))" (( "(") (binary_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" (parenthesized_expression "(((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)\n            )" (( "(") (binary_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)" (parenthesized_expression "((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0))" (( "(") (binary_expression "(*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)" (parenthesized_expression "(*(int *)local_158[8] != 1)" (( "(") (binary_expression "*(int *)local_158[8] != 1" (pointer_expression "*(int *)local_158[8]" (* "*") (cast_expression "(int *)local_158[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_158[8]" (identifier "local_158") ([ "[") (number_literal "8") (] "]")))) (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(((int *)local_158[8])[7] != 0)" (( "(") (binary_expression "((int *)local_158[8])[7] != 0" (subscript_expression "((int *)local_158[8])[7]" (parenthesized_expression "((int *)local_158[8])" (( "(") (cast_expression "(int *)local_158[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_158[8]" (identifier "local_158") ([ "[") (number_literal "8") (] "]"))) () ")")) ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_158[9] != 0)" (( "(") (binary_expression "local_158[9] != 0" (subscript_expression "local_158[9]" (identifier "local_158") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))" (( "(") (parenthesized_expression "((local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))))" (( "(") (binary_expression "(local_158[0xc] != 0 || (local_158[10] != 0)) ||\n                  ((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" (parenthesized_expression "(local_158[0xc] != 0 || (local_158[10] != 0))" (( "(") (binary_expression "local_158[0xc] != 0 || (local_158[10] != 0)" (binary_expression "local_158[0xc] != 0" (subscript_expression "local_158[0xc]" (identifier "local_158") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(local_158[10] != 0)" (( "(") (binary_expression "local_158[10] != 0" (subscript_expression "local_158[10]" (identifier "local_158") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))" (( "(") (parenthesized_expression "(local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))))" (( "(") (binary_expression "local_158[0xf] != 0 ||\n                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" (binary_expression "local_158[0xf] != 0" (subscript_expression "local_158[0xf]" (identifier "local_158") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))" (( "(") (parenthesized_expression "(local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0))" (( "(") (binary_expression "local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)" (binary_expression "local_158[0xd] != 0" (subscript_expression "local_158[0xd]" (identifier "local_158") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(local_158 + 2) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(local_158 + 2) & 1) != 0" (parenthesized_expression "(*(byte *)(local_158 + 2) & 1)" (( "(") (binary_expression "*(byte *)(local_158 + 2) & 1" (pointer_expression "*(byte *)(local_158 + 2)" (* "*") (cast_expression "(byte *)(local_158 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_158 + 2)" (( "(") (binary_expression "local_158 + 2" (identifier "local_158") (+ "+") (number_literal "2")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))" (( "(") (parenthesized_expression "(*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))))" (( "(") (binary_expression "*(int *)*local_158 != 1 ||\n           ((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" (binary_expression "*(int *)*local_158 != 1" (pointer_expression "*(int *)*local_158" (* "*") (cast_expression "(int *)*local_158" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_158" (* "*") (identifier "local_158")))) (!= "!=") (number_literal "1")) (|| "||") (parenthesized_expression "((*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))" (( "(") (parenthesized_expression "(*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0))" (( "(") (binary_expression "*(char *)((int *)*local_158)[1] != -0x58 ||\n            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" (binary_expression "*(char *)((int *)*local_158)[1] != -0x58" (pointer_expression "*(char *)((int *)*local_158)[1]" (* "*") (cast_expression "(char *)((int *)*local_158)[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *)*local_158)[1]" (parenthesized_expression "((int *)*local_158)" (( "(") (cast_expression "(int *)*local_158" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_158" (* "*") (identifier "local_158"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (!= "!=") (number_literal "-0x58")) (|| "||") (parenthesized_expression "(puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0" (assignment_expression "puVar17 = (undefined4 *)FUN_000eb150()" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)FUN_000eb150()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000eb150()" (identifier "FUN_000eb150") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "puVar17 == (undefined4 *)0x0" (identifier "puVar17") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))" (( "(") (parenthesized_expression "((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))))" (( "(") (binary_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||\n          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" (parenthesized_expression "(puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12]))" (( "(") (binary_expression "puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])" (binary_expression "puVar17[7] == piVar12[7]" (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")) (== "==") (subscript_expression "piVar12[7]" (identifier "piVar12") ([ "[") (number_literal "7") (] "]"))) (&& "&&") (parenthesized_expression "(puVar17[0x12] == piVar12[0x12])" (( "(") (binary_expression "puVar17[0x12] == piVar12[0x12]" (subscript_expression "puVar17[0x12]" (identifier "puVar17") ([ "[") (number_literal "0x12") (] "]")) (== "==") (subscript_expression "piVar12[0x12]" (identifier "piVar12") ([ "[") (number_literal "0x12") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))" (( "(") (parenthesized_expression "((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))))" (( "(") (binary_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||\n           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" (parenthesized_expression "(((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0))" (( "(") (binary_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)" (parenthesized_expression "((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0))" (( "(") (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)\n             || (puVar17[0xe] != 0)" (binary_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" (parenthesized_expression "(((byte)((uint)piVar12[9] >> 5) ^ 1) & 1)" (( "(") (binary_expression "((byte)((uint)piVar12[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)piVar12[9] >> 5) ^ 1)" (( "(") (binary_expression "(byte)((uint)piVar12[9] >> 5) ^ 1" (call_expression "(byte)((uint)piVar12[9] >> 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)piVar12[9] >> 5)" (( "(") (binary_expression "(uint)piVar12[9] >> 5" (cast_expression "(uint)piVar12[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[9]" (identifier "piVar12") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (number_literal "5")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")) (!= "!=") (parenthesized_expression "(((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)" (( "(") (binary_expression "((byte)((uint)puVar17[9] >> 5) ^ 1) & 1" (parenthesized_expression "((byte)((uint)puVar17[9] >> 5) ^ 1)" (( "(") (binary_expression "(byte)((uint)puVar17[9] >> 5) ^ 1" (call_expression "(byte)((uint)puVar17[9] >> 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)puVar17[9] >> 5)" (( "(") (binary_expression "(uint)puVar17[9] >> 5" (cast_expression "(uint)puVar17[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar17[9]" (identifier "puVar17") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (number_literal "5")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")"))) (|| "||") (parenthesized_expression "(puVar17[0xe] != 0)" (( "(") (binary_expression "puVar17[0xe] != 0" (subscript_expression "puVar17[0xe]" (identifier "puVar17") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar17[3] != 0)" (( "(") (binary_expression "puVar17[3] != 0" (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))" (( "(") (parenthesized_expression "(sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)))" (( "(") (comma_expression "sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (assignment_expression "sVar4 = *(short *)((int)piVar12 + 0x2a)" (identifier "sVar4") (= "=") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) (, ",") (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a) ||\n            (uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (binary_expression "sVar4 != *(short *)((int)puVar17 + 0x2a)" (identifier "sVar4") (!= "!=") (pointer_expression "*(short *)((int)puVar17 + 0x2a)" (* "*") (cast_expression "(short *)((int)puVar17 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + 0x2a)" (( "(") (binary_expression "(int)puVar17 + 0x2a" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "0x2a")) () ")"))))) (|| "||") (parenthesized_expression "(uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))" (( "(") (comma_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10),\n            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (assignment_expression "uVar35 = (uint)*(ushort *)(puVar17 + 10)" (identifier "uVar35") (= "=") (binary_expression "(uint)*(ushort *)(puVar17 + 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(puVar17 + 10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 10)" (( "(") (binary_expression "puVar17 + 10" (identifier "puVar17") (+ "+") (number_literal "10")) () ")"))))) (, ",") (binary_expression "*(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10)" (pointer_expression "*(ushort *)(piVar12 + 10)" (* "*") (cast_expression "(ushort *)(piVar12 + 10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12 + 10)" (( "(") (binary_expression "piVar12 + 10" (identifier "piVar12") (+ "+") (number_literal "10")) () ")")))) (!= "!=") (pointer_expression "*(ushort *)(puVar17 + 10)" (* "*") (cast_expression "(ushort *)(puVar17 + 10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 10)" (( "(") (binary_expression "puVar17 + 10" (identifier "puVar17") (+ "+") (number_literal "10")) () ")")))))) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (for_statement "for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" (for "for") (( "(") (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";") (binary_expression "iVar16 < sVar4" (identifier "iVar16") (< "<") (identifier "sVar4")) (; ";") (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        iVar18 = piVar12[1] + iVar16 * 0x10;\n        uVar27 = iVar16 * 0x10 + puVar17[1];\n        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;\n        iVar22 = *(int *)(uVar27 + 8);\n        if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }\n        if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;\n        uVar35 = uVar27;\n        if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }\n      }" ({ "{") (expression_statement "iVar18 = piVar12[1] + iVar16 * 0x10;" (assignment_expression "iVar18 = piVar12[1] + iVar16 * 0x10" (identifier "iVar18") (= "=") (binary_expression "piVar12[1] + iVar16 * 0x10" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar16 * 0x10" (identifier "iVar16") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "uVar27 = iVar16 * 0x10 + puVar17[1];" (assignment_expression "uVar27 = iVar16 * 0x10 + puVar17[1]" (identifier "uVar27") (= "=") (binary_expression "iVar16 * 0x10 + puVar17[1]" (binary_expression "iVar16 * 0x10" (identifier "iVar16") (* "*") (number_literal "0x10")) (+ "+") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;" (if "if") (parenthesized_expression "(*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd))" (( "(") (binary_expression "*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)" (pointer_expression "*(char *)(iVar18 + 0xd)" (* "*") (cast_expression "(char *)(iVar18 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xd)" (( "(") (binary_expression "iVar18 + 0xd" (identifier "iVar18") (+ "+") (number_literal "0xd")) () ")")))) (!= "!=") (pointer_expression "*(char *)(uVar27 + 0xd)" (* "*") (cast_expression "(char *)(uVar27 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar27 + 0xd)" (( "(") (binary_expression "uVar27 + 0xd" (identifier "uVar27") (+ "+") (number_literal "0xd")) () ")"))))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (expression_statement "iVar22 = *(int *)(uVar27 + 8);" (assignment_expression "iVar22 = *(int *)(uVar27 + 8)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(uVar27 + 8)" (* "*") (cast_expression "(int *)(uVar27 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar27 + 8)" (( "(") (binary_expression "uVar27 + 8" (identifier "uVar27") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar18 + 8) != 0) {\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar18 + 8) != 0" (pointer_expression "*(int *)(iVar18 + 8)" (* "*") (cast_expression "(int *)(iVar18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar22 == 0) goto LAB_000f380e;\n          iVar22 = FUN_000446c0();\n        }" ({ "{") (if_statement "if (iVar22 == 0) goto LAB_000f380e;" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (expression_statement "iVar22 = FUN_000446c0();" (assignment_expression "iVar22 = FUN_000446c0()" (identifier "iVar22") (= "=") (call_expression "FUN_000446c0()" (identifier "FUN_000446c0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if ((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))\n        goto LAB_000f380e;" (if "if") (parenthesized_expression "((iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))" (( "(") (binary_expression "(iVar22 != 0) ||\n           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')))" (( "(") (parenthesized_expression "(*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))" (( "(") (binary_expression "*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0')" (binary_expression "*(char *)(iVar18 + 0xc) != '\0'" (pointer_expression "*(char *)(iVar18 + 0xc)" (* "*") (cast_expression "(char *)(iVar18 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)(uVar27 + 0xc) == '\0')" (( "(") (binary_expression "*(char *)(uVar27 + 0xc) == '\0'" (pointer_expression "*(char *)(uVar27 + 0xc)" (* "*") (cast_expression "(char *)(uVar27 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar27 + 0xc)" (( "(") (binary_expression "uVar27 + 0xc" (identifier "uVar27") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (expression_statement "uVar35 = uVar27;" (assignment_expression "uVar35 = uVar27" (identifier "uVar35") (= "=") (identifier "uVar27")) (; ";")) (if_statement "if (0 < iVar16) {\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" (if "if") (parenthesized_expression "(0 < iVar16)" (( "(") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n          iVar18 = *(int *)(iVar18 + 4);\n          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;\n        }" ({ "{") (expression_statement "iVar18 = *(int *)(iVar18 + 4);" (assignment_expression "iVar18 = *(int *)(iVar18 + 4)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar18 + 4)" (* "*") (cast_expression "(int *)(iVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;" (if "if") (parenthesized_expression "(((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))))" (( "(") (binary_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||\n             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" (parenthesized_expression "((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0))" (( "(") (binary_expression "(iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (!= "!=") (parenthesized_expression "(*(int *)(uVar27 + 4) == 0)" (( "(") (binary_expression "*(int *)(uVar27 + 4) == 0" (pointer_expression "*(int *)(uVar27 + 4)" (* "*") (cast_expression "(int *)(uVar27 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar27 + 4)" (( "(") (binary_expression "uVar27 + 4" (identifier "uVar27") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))" (( "(") (parenthesized_expression "(uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0))" (( "(") (comma_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" (identifier "uVar35") (= "=") (call_expression "CONCAT31((int3)(uVar27 >> 8),iVar18 == 0)" (identifier "CONCAT31") (argument_list "((int3)(uVar27 >> 8),iVar18 == 0)" (( "(") (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar27 >> 8)" (( "(") (binary_expression "uVar27 >> 8" (identifier "uVar27") (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")))) (, ",") (binary_expression "iVar18 != 0 &&\n              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)" (( "(") (comma_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),\n              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" (identifier "iVar18") (= "=") (call_expression "strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" (identifier "strcmp") (argument_list "(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8))" (( "(") (pointer_expression "*(char **)(iVar18 + 8)" (* "*") (cast_expression "(char **)(iVar18 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(char **)(*(int *)(uVar27 + 4) + 8)" (* "*") (cast_expression "(char **)(*(int *)(uVar27 + 4) + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(uVar27 + 4) + 8)" (( "(") (binary_expression "*(int *)(uVar27 + 4) + 8" (pointer_expression "*(int *)(uVar27 + 4)" (* "*") (cast_expression "(int *)(uVar27 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar27 + 4)" (( "(") (binary_expression "uVar27 + 4" (identifier "uVar27") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")")))) (, ",") (comma_expression "uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0" (assignment_expression "uVar35 = unaff_EDI + 0xc78c1" (identifier "uVar35") (= "=") (binary_expression "unaff_EDI + 0xc78c1" (identifier "unaff_EDI") (+ "+") (number_literal "0xc78c1"))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (} "}"))) (} "}"))) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (for_statement "for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" (for "for") (( "(") (assignment_expression "iVar16 = piVar12[2]" (identifier "iVar16") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar16 = *(int *)(iVar16 + 0x14)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar16 + 0x14)" (* "*") (cast_expression "(int *)(iVar16 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x14)" (( "(") (binary_expression "iVar16 + 0x14" (identifier "iVar16") (+ "+") (number_literal "0x14")) () ")"))))) () ")") (compound_statement "{\n        uVar35 = puVar17[2];\n        if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }\n        while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }\n      }" ({ "{") (expression_statement "uVar35 = puVar17[2];" (assignment_expression "uVar35 = puVar17[2]" (identifier "uVar35") (= "=") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (*(char *)(iVar16 + 0x36) != '\0') {\n          local_170 = 1;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar16 + 0x36) != '\0')" (( "(") (binary_expression "*(char *)(iVar16 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar16 + 0x36)" (* "*") (cast_expression "(char *)(iVar16 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x36)" (( "(") (binary_expression "iVar16 + 0x36" (identifier "iVar16") (+ "+") (number_literal "0x36")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_170 = 1;\n        }" ({ "{") (expression_statement "local_170 = 1;" (assignment_expression "local_170 = 1" (identifier "local_170") (= "=") (number_literal "1")) (; ";")) (} "}"))) (while_statement "while( true ) {\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if (uVar35 == 0) goto LAB_000f380e;\n          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;\n          uVar35 = *(uint *)(uVar35 + 0x14);\n        }" ({ "{") (if_statement "if (uVar35 == 0) goto LAB_000f380e;" (if "if") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (if_statement "if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;" (if "if") (parenthesized_expression "(((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0))" (( "(") (binary_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&\n             (iVar18 = FUN_00087c20(), iVar18 != 0)" (parenthesized_expression "((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)))" (( "(") (binary_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&\n              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" (parenthesized_expression "(*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32))" (( "(") (binary_expression "*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)" (pointer_expression "*(short *)(iVar16 + 0x32)" (* "*") (cast_expression "(short *)(iVar16 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x32)" (( "(") (binary_expression "iVar16 + 0x32" (identifier "iVar16") (+ "+") (number_literal "0x32")) () ")")))) (== "==") (pointer_expression "*(short *)(uVar35 + 0x32)" (* "*") (cast_expression "(short *)(uVar35 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 + 0x32)" (( "(") (binary_expression "uVar35 + 0x32" (identifier "uVar35") (+ "+") (number_literal "0x32")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))" (( "(") (binary_expression "*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36)" (pointer_expression "*(char *)(iVar16 + 0x36)" (* "*") (cast_expression "(char *)(iVar16 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x36)" (( "(") (binary_expression "iVar16 + 0x36" (identifier "iVar16") (+ "+") (number_literal "0x36")) () ")")))) (== "==") (pointer_expression "*(char *)(uVar35 + 0x36)" (* "*") (cast_expression "(char *)(uVar35 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 + 0x36)" (( "(") (binary_expression "uVar35 + 0x36" (identifier "uVar35") (+ "+") (number_literal "0x36")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = FUN_00087c20(), iVar18 != 0)" (( "(") (comma_expression "iVar18 = FUN_00087c20(), iVar18 != 0" (assignment_expression "iVar18 = FUN_00087c20()" (identifier "iVar18") (= "=") (call_expression "FUN_00087c20()" (identifier "FUN_00087c20") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar35 = *(uint *)(uVar35 + 0x14);" (assignment_expression "uVar35 = *(uint *)(uVar35 + 0x14)" (identifier "uVar35") (= "=") (pointer_expression "*(uint *)(uVar35 + 0x14)" (* "*") (cast_expression "(uint *)(uVar35 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 + 0x14)" (( "(") (binary_expression "uVar35 + 0x14" (identifier "uVar35") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;" (if "if") (parenthesized_expression "((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0))" (( "(") (binary_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||\n         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" (parenthesized_expression "(((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))))" (( "(") (binary_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||\n          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" (parenthesized_expression "((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0))" (( "(") (binary_expression "(piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)" (parenthesized_expression "(piVar12[6] != 0)" (( "(") (binary_expression "piVar12[6] != 0" (subscript_expression "piVar12[6]" (identifier "piVar12") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 = FUN_000879d0(), iVar16 != 0)" (( "(") (comma_expression "iVar16 = FUN_000879d0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000879d0()" (identifier "iVar16") (= "=") (call_expression "FUN_000879d0()" (identifier "FUN_000879d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))" (( "(") (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0))" (( "(") (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)" (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x4000)" (( "(") (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x4000" (pointer_expression "*(uint *)(iVar15 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(piVar12[4] != 0)" (( "(") (binary_expression "piVar12[4] != 0" (subscript_expression "piVar12[4]" (identifier "piVar12") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)" (( "(") (binary_expression "(*(uint *)(iVar15 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x1c) & 0x80)" (( "(") (binary_expression "*(uint *)(iVar15 + 0x1c) & 0x80" (pointer_expression "*(uint *)(iVar15 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";"))) (if_statement "if (puVar17[0x12] == 0) {\n        local_140 = 0xfff0bdc0;\n      }\n      else {\n        local_140 = FUN_00046080();\n      }" (if "if") (parenthesized_expression "(puVar17[0x12] == 0)" (( "(") (binary_expression "puVar17[0x12] == 0" (subscript_expression "puVar17[0x12]" (identifier "puVar17") ([ "[") (number_literal "0x12") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_140 = 0xfff0bdc0;\n      }" ({ "{") (expression_statement "local_140 = 0xfff0bdc0;" (assignment_expression "local_140 = 0xfff0bdc0" (identifier "local_140") (= "=") (number_literal "0xfff0bdc0")) (; ";")) (} "}")) (else_clause "else {\n        local_140 = FUN_00046080();\n      }" (else "else") (compound_statement "{\n        local_140 = FUN_00046080();\n      }" ({ "{") (expression_statement "local_140 = FUN_00046080();" (assignment_expression "local_140 = FUN_00046080()" (identifier "local_140") (= "=") (call_expression "FUN_00046080()" (identifier "FUN_00046080") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "piVar34 = (int *)piVar11[2];" (assignment_expression "piVar34 = (int *)piVar11[2]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar11[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piVar34 == (int *)0x0) {\n        piVar34 = (int *)FUN_00073350();\n      }" (if "if") (parenthesized_expression "(piVar34 == (int *)0x0)" (( "(") (binary_expression "piVar34 == (int *)0x0" (identifier "piVar34") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar34 = (int *)FUN_00073350();\n      }" ({ "{") (expression_statement "piVar34 = (int *)FUN_00073350();" (assignment_expression "piVar34 = (int *)FUN_00073350()" (identifier "piVar34") (= "=") (cast_expression "(int *)FUN_00073350()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00073350()" (identifier "FUN_00073350") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "FUN_000bca90();" (call_expression "FUN_000bca90()" (identifier "FUN_000bca90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_12c = 0;" (assignment_expression "local_12c = 0" (identifier "local_12c") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11[10] = piVar11[10] + 2;" (assignment_expression "piVar11[10] = piVar11[10] + 2" (subscript_expression "piVar11[10]" (identifier "piVar11") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "piVar11[10] + 2" (subscript_expression "piVar11[10]" (identifier "piVar11") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n        local_12c = FUN_00055fd0();\n      }" (if "if") (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" (( "(") (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" (* "*") (cast_expression "(byte *)(piVar12 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12 + 9)" (( "(") (binary_expression "piVar12 + 9" (identifier "piVar12") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_12c = FUN_00055fd0();\n      }" ({ "{") (expression_statement "local_12c = FUN_00055fd0();" (assignment_expression "local_12c = FUN_00055fd0()" (identifier "local_12c") (= "=") (call_expression "FUN_00055fd0()" (identifier "FUN_00055fd0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")"))))) (; ";")) (if_statement "if (cVar2 == '\0') {\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }\n      else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_168 = (int *)(piVar11[0xb] + 1);\n        piVar11[0xb] = (int)local_168;\nLAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;\n        piVar11[0xb] = uVar35;\n        local_16c = uVar35;\n      }" ({ "{") (expression_statement "local_168 = (int *)(piVar11[0xb] + 1);" (assignment_expression "local_168 = (int *)(piVar11[0xb] + 1)" (identifier "local_168") (= "=") (cast_expression "(int *)(piVar11[0xb] + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[0xb] + 1)" (( "(") (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar11[0xb] = (int)local_168;" (assignment_expression "piVar11[0xb] = (int)local_168" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int)local_168" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_168"))) (; ";")) (labeled_statement "LAB_000f592a:\n        uVar35 = piVar11[0xb] + 1;" (statement_identifier "LAB_000f592a") (: ":") (expression_statement "uVar35 = piVar11[0xb] + 1;" (assignment_expression "uVar35 = piVar11[0xb] + 1" (identifier "uVar35") (= "=") (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar11[0xb] = uVar35;" (assignment_expression "piVar11[0xb] = uVar35" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar35")) (; ";")) (expression_statement "local_16c = uVar35;" (assignment_expression "local_16c = uVar35" (identifier "local_16c") (= "=") (identifier "uVar35")) (; ";")) (} "}")) (else_clause "else {\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" (else "else") (compound_statement "{\n        bVar1 = cVar2 - 1;\n        *(byte *)((int)piVar11 + 0x13) = bVar1;\n        local_168 = (int *)piVar11[bVar1 + 0x24];\n        if (bVar1 == 0) goto LAB_000f592a;\n        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];\n      }" ({ "{") (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" (identifier "bVar1") (= "=") (binary_expression "cVar2 - 1" (identifier "cVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "local_168 = (int *)piVar11[bVar1 + 0x24];" (assignment_expression "local_168 = (int *)piVar11[bVar1 + 0x24]" (identifier "local_168") (= "=") (cast_expression "(int *)piVar11[bVar1 + 0x24]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[bVar1 + 0x24]" (identifier "piVar11") ([ "[") (binary_expression "bVar1 + 0x24" (identifier "bVar1") (+ "+") (number_literal "0x24")) (] "]")))) (; ";")) (if_statement "if (bVar1 == 0) goto LAB_000f592a;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f592a;" (goto "goto") (statement_identifier "LAB_000f592a") (; ";"))) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (binary_expression "cVar2 - 2U" (identifier "cVar2") (- "-") (number_literal "2U"))) (; ";")) (expression_statement "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24]" (identifier "local_16c") (= "=") (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" (identifier "piVar11") ([ "[") (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 2U)" (( "(") (binary_expression "cVar2 - 2U" (identifier "cVar2") (- "-") (number_literal "2U")) () ")"))) (+ "+") (number_literal "0x24")) (] "]"))) (; ";")) (} "}")))) (expression_statement "FUN_00090f40(piVar12,0x6e,uVar35,uVar35);" (call_expression "FUN_00090f40(piVar12,0x6e,uVar35,uVar35)" (identifier "FUN_00090f40") (argument_list "(piVar12,0x6e,uVar35,uVar35)" (( "(") (identifier "piVar12") (, ",") (number_literal "0x6e") (, ",") (identifier "uVar35") (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "iVar16 = extraout_ECX_03;" (assignment_expression "iVar16 = extraout_ECX_03" (identifier "iVar16") (= "=") (identifier "extraout_ECX_03")) (; ";")) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }\n      else {\n        local_170 = 0;\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" (* "*") (cast_expression "(byte *)(iVar15 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }\n      }" ({ "{") (if_statement "if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))) {\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" (if "if") (parenthesized_expression "((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1))))" (( "(") (binary_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||\n           ((local_170 != 0 || (1 < local_14c - 1)))" (parenthesized_expression "(((short)piVar12[10] < 0) && (piVar12[2] != 0))" (( "(") (binary_expression "((short)piVar12[10] < 0) && (piVar12[2] != 0)" (parenthesized_expression "((short)piVar12[10] < 0)" (( "(") (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]"))) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar12[2] != 0)" (( "(") (binary_expression "piVar12[2] != 0" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_170 != 0 || (1 < local_14c - 1)))" (( "(") (parenthesized_expression "(local_170 != 0 || (1 < local_14c - 1))" (( "(") (binary_expression "local_170 != 0 || (1 < local_14c - 1)" (binary_expression "local_170 != 0" (identifier "local_170") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(1 < local_14c - 1)" (( "(") (binary_expression "1 < local_14c - 1" (number_literal "1") (< "<") (binary_expression "local_14c - 1" (identifier "local_14c") (- "-") (number_literal "1"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar35 = FUN_00073150(0);\n          local_170 = FUN_00073150(0);\n          if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }\n          iVar16 = *piVar34;\n          iVar18 = unaff_EDI + 0xc9455;\n          if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }\n          *(int *)(iVar18 + 8) = piVar34[0x1a];\n        }" ({ "{") (expression_statement "uVar35 = FUN_00073150(0);" (assignment_expression "uVar35 = FUN_00073150(0)" (identifier "uVar35") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_170 = FUN_00073150(0);" (assignment_expression "local_170 = FUN_00073150(0)" (identifier "local_170") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((int)uVar35 < 0) {\n            uVar35 = piVar34[0x1a] - 1;\n          }" (if "if") (parenthesized_expression "((int)uVar35 < 0)" (( "(") (binary_expression "(int)uVar35 < 0" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar35 = piVar34[0x1a] - 1;\n          }" ({ "{") (expression_statement "uVar35 = piVar34[0x1a] - 1;" (assignment_expression "uVar35 = piVar34[0x1a] - 1" (identifier "uVar35") (= "=") (binary_expression "piVar34[0x1a] - 1" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar16 = *piVar34;" (assignment_expression "iVar16 = *piVar34" (identifier "iVar16") (= "=") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) (; ";")) (expression_statement "iVar18 = unaff_EDI + 0xc9455;" (assignment_expression "iVar18 = unaff_EDI + 0xc9455" (identifier "iVar18") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(iVar16 + 0x4d) == '\0') {\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar16 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar16 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar16 + 0x4d)" (* "*") (cast_expression "(char *)(iVar16 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x4d)" (( "(") (binary_expression "iVar16 + 0x4d" (identifier "iVar16") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar35 = uVar35 * 0x18;\n            iVar18 = piVar34[0x19] + uVar35;\n          }" ({ "{") (expression_statement "uVar35 = uVar35 * 0x18;" (assignment_expression "uVar35 = uVar35 * 0x18" (identifier "uVar35") (= "=") (binary_expression "uVar35 * 0x18" (identifier "uVar35") (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "iVar18 = piVar34[0x19] + uVar35;" (assignment_expression "iVar18 = piVar34[0x19] + uVar35" (identifier "iVar18") (= "=") (binary_expression "piVar34[0x19] + uVar35" (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (identifier "uVar35"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar18 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar18 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar18 + 8)" (* "*") (cast_expression "(int *)(iVar18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_170 = 0;\n      }" (else "else") (compound_statement "{\n        local_170 = 0;\n      }" ({ "{") (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }\n      else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" (if "if") (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) == 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" (( "(") (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" (* "*") (cast_expression "(byte *)(puVar17 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 9)" (( "(") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);\n        local_130 = FUN_00073150(0);\n        if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }\n        uVar28 = 0x29;\n        FUN_00072f80(local_168,1,iVar22,iVar22);\n        iVar16 = iVar15;\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }\n        FUN_00072f80(local_168,local_16c,iVar16,iVar16);\n        FUN_00062750(0xfffffffa);\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }\n        FUN_00073150(iVar18);\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" ({ "{") (expression_statement "FUN_00090f40(puVar17,0x6d,iVar16,iVar16);" (call_expression "FUN_00090f40(puVar17,0x6d,iVar16,iVar16)" (identifier "FUN_00090f40") (argument_list "(puVar17,0x6d,iVar16,iVar16)" (( "(") (identifier "puVar17") (, ",") (number_literal "0x6d") (, ",") (identifier "iVar16") (, ",") (identifier "iVar16") () ")"))) (; ";")) (expression_statement "local_130 = FUN_00073150(0);" (assignment_expression "local_130 = FUN_00073150(0)" (identifier "local_130") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((short)piVar12[10] < 0) {\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }\n        else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" (if "if") (parenthesized_expression "((short)piVar12[10] < 0)" (( "(") (binary_expression "(short)piVar12[10] < 0" (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n        }" ({ "{") (if_statement "if (piVar12[2] == 0) {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }\n          else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" (if "if") (parenthesized_expression "(piVar12[2] == 0)" (( "(") (binary_expression "piVar12[2] == 0" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" ({ "{") (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" (identifier "iVar22") (= "=") (call_expression "FUN_00073150(local_16c)" (identifier "FUN_00073150") (argument_list "(local_16c)" (( "(") (identifier "local_16c") () ")")))) (; ";")) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" (identifier "iVar18") (= "=") (identifier "iVar22")) (; ";")) (} "}")) (else_clause "else {\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" (else "else") (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n            iVar18 = iVar22;\n          }" ({ "{") (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" (identifier "iVar22") (= "=") (call_expression "FUN_00073150(local_16c)" (identifier "FUN_00073150") (argument_list "(local_16c)" (( "(") (identifier "local_16c") () ")")))) (; ";")) (expression_statement "iVar18 = iVar22;" (assignment_expression "iVar18 = iVar22" (identifier "iVar18") (= "=") (identifier "iVar22")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" (else "else") (compound_statement "{\n          iVar18 = FUN_00073150(local_16c);\n          iVar16 = FUN_00072f80(0,local_16c);\n          FUN_00086c60();\n          if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }\n          iVar22 = unaff_EDI + 0xc9455;\n          if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }\n          *(int *)(iVar22 + 8) = piVar34[0x1a];\n          if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }\n        }" ({ "{") (expression_statement "iVar18 = FUN_00073150(local_16c);" (assignment_expression "iVar18 = FUN_00073150(local_16c)" (identifier "iVar18") (= "=") (call_expression "FUN_00073150(local_16c)" (identifier "FUN_00073150") (argument_list "(local_16c)" (( "(") (identifier "local_16c") () ")")))) (; ";")) (expression_statement "iVar16 = FUN_00072f80(0,local_16c);" (assignment_expression "iVar16 = FUN_00072f80(0,local_16c)" (identifier "iVar16") (= "=") (call_expression "FUN_00072f80(0,local_16c)" (identifier "FUN_00072f80") (argument_list "(0,local_16c)" (( "(") (number_literal "0") (, ",") (identifier "local_16c") () ")")))) (; ";")) (expression_statement "FUN_00086c60();" (call_expression "FUN_00086c60()" (identifier "FUN_00086c60") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar16 < 0) {\n            iVar16 = piVar34[0x1a] + -1;\n          }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar16 = piVar34[0x1a] + -1;\n          }" ({ "{") (expression_statement "iVar16 = piVar34[0x1a] + -1;" (assignment_expression "iVar16 = piVar34[0x1a] + -1" (identifier "iVar16") (= "=") (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" (identifier "iVar22") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" (if "if") (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" (* "*") (cast_expression "(char *)(*piVar34 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + 0x4d)" (( "(") (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            iVar22 = piVar34[0x19] + iVar16 * 0x18;\n          }" ({ "{") (expression_statement "iVar22 = piVar34[0x19] + iVar16 * 0x18;" (assignment_expression "iVar22 = piVar34[0x19] + iVar16 * 0x18" (identifier "iVar22") (= "=") (binary_expression "piVar34[0x19] + iVar16 * 0x18" (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar16 * 0x18" (identifier "iVar16") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar22 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" (* "*") (cast_expression "(int *)(iVar22 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if (0 < local_12c) {\n            iVar22 = FUN_00073150(local_16c);\n          }" (if "if") (parenthesized_expression "(0 < local_12c)" (( "(") (binary_expression "0 < local_12c" (number_literal "0") (< "<") (identifier "local_12c")) () ")")) (compound_statement "{\n            iVar22 = FUN_00073150(local_16c);\n          }" ({ "{") (expression_statement "iVar22 = FUN_00073150(local_16c);" (assignment_expression "iVar22 = FUN_00073150(local_16c)" (identifier "iVar22") (= "=") (call_expression "FUN_00073150(local_16c)" (identifier "FUN_00073150") (argument_list "(local_16c)" (( "(") (identifier "local_16c") () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar28 = 0x29;" (assignment_expression "uVar28 = 0x29" (identifier "uVar28") (= "=") (number_literal "0x29")) (; ";")) (expression_statement "FUN_00072f80(local_168,1,iVar22,iVar22);" (call_expression "FUN_00072f80(local_168,1,iVar22,iVar22)" (identifier "FUN_00072f80") (argument_list "(local_168,1,iVar22,iVar22)" (( "(") (identifier "local_168") (, ",") (number_literal "1") (, ",") (identifier "iVar22") (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" (identifier "iVar16") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" (* "*") (cast_expression "(byte *)(iVar15 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar28 = 0x39;\n          iVar16 = FUN_00073150(0);\n        }" ({ "{") (expression_statement "uVar28 = 0x39;" (assignment_expression "uVar28 = 0x39" (identifier "uVar28") (= "=") (number_literal "0x39")) (; ";")) (expression_statement "iVar16 = FUN_00073150(0);" (assignment_expression "iVar16 = FUN_00073150(0)" (identifier "iVar16") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_00072f80(local_168,local_16c,iVar16,iVar16);" (call_expression "FUN_00072f80(local_168,local_16c,iVar16,iVar16)" (identifier "FUN_00072f80") (argument_list "(local_168,local_16c,iVar16,iVar16)" (( "(") (identifier "local_168") (, ",") (identifier "local_16c") (, ",") (identifier "iVar16") (, ",") (identifier "iVar16") () ")"))) (; ";")) (expression_statement "FUN_00062750(0xfffffffa);" (call_expression "FUN_00062750(0xfffffffa)" (identifier "FUN_00062750") (argument_list "(0xfffffffa)" (( "(") (number_literal "0xfffffffa") () ")"))) (; ";")) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" (if "if") (parenthesized_expression "(0 < piVar34[0x1a])" (( "(") (binary_expression "0 < piVar34[0x1a]" (number_literal "0") (< "<") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;\n        }" ({ "{") (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (* "*") (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]"))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (} "}"))) (expression_statement "FUN_00073150(iVar18);" (call_expression "FUN_00073150(iVar18)" (identifier "FUN_00073150") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" (else "else") (compound_statement "{\n        FUN_00072d00(1,*piVar12,uVar35,uVar35);\n        FUN_00072d00(0,*puVar17);\n        local_130 = 0;\n      }" ({ "{") (expression_statement "FUN_00072d00(1,*piVar12,uVar35,uVar35);" (call_expression "FUN_00072d00(1,*piVar12,uVar35,uVar35)" (identifier "FUN_00072d00") (argument_list "(1,*piVar12,uVar35,uVar35)" (( "(") (number_literal "1") (, ",") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (, ",") (identifier "uVar35") (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "FUN_00072d00(0,*puVar17);" (call_expression "FUN_00072d00(0,*puVar17)" (identifier "FUN_00072d00") (argument_list "(0,*puVar17)" (( "(") (number_literal "0") (, ",") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) () ")"))) (; ";")) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" (identifier "local_130") (= "=") (number_literal "0")) (; ";")) (} "}")))) (for_statement "for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;\n          puVar38 = (undefined4 *)puVar38[5]) {\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" (for "for") (( "(") (assignment_expression "puVar38 = (undefined4 *)piVar12[2]" (identifier "puVar38") (= "=") (cast_expression "(undefined4 *)piVar12[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")))) (; ";") (binary_expression "puVar38 != (undefined4 *)0x0" (identifier "puVar38") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar38 = (undefined4 *)puVar38[5]" (identifier "puVar38") (= "=") (cast_expression "(undefined4 *)puVar38[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar38[5]" (identifier "puVar38") ([ "[") (number_literal "5") (] "]")))) () ")") (compound_statement "{\n        puVar36 = (undefined4 *)puVar17[2];\n        while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }\n        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);\n        FUN_00090ee0();\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);\n        FUN_00072f80(puVar38[0xb],local_134);\n        FUN_00090ee0();\n        if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }\n        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);\n        local_14c = FUN_00073150(0);\n        uVar33 = 0;\n        FUN_00072f80(local_168,1);\n        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }\nLAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }\n        FUN_00073150(local_168);\n        if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }\n        FUN_00073150(local_14c + 1);\n        if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }\n        iVar16 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar16 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        FUN_00073150(0);\n      }" ({ "{") (expression_statement "puVar36 = (undefined4 *)puVar17[2];" (assignment_expression "puVar36 = (undefined4 *)puVar17[2]" (identifier "puVar36") (= "=") (cast_expression "(undefined4 *)puVar17[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")))) (; ";")) (while_statement "while( true ) {\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }\n          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;\n          puVar36 = (undefined4 *)puVar36[5];\n        }" ({ "{") (if_statement "if (puVar36 == (undefined4 *)0x0) {\n            FUN_000157bf();\n            return;\n          }" (if "if") (parenthesized_expression "(puVar36 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar36 == (undefined4 *)0x0" (identifier "puVar36") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_000157bf();\n            return;\n          }" ({ "{") (expression_statement "FUN_000157bf();" (call_expression "FUN_000157bf()" (identifier "FUN_000157bf") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;" (if "if") (parenthesized_expression "(((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0))" (( "(") (binary_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&\n             (iVar16 = FUN_00087c20(), iVar16 != 0)" (parenthesized_expression "((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)))" (( "(") (binary_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&\n              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" (parenthesized_expression "(*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32))" (( "(") (binary_expression "*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)" (pointer_expression "*(short *)((int)puVar38 + 0x32)" (* "*") (cast_expression "(short *)((int)puVar38 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar38 + 0x32)" (( "(") (binary_expression "(int)puVar38 + 0x32" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (+ "+") (number_literal "0x32")) () ")")))) (== "==") (pointer_expression "*(short *)((int)puVar36 + 0x32)" (* "*") (cast_expression "(short *)((int)puVar36 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 + 0x32)" (( "(") (binary_expression "(int)puVar36 + 0x32" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (number_literal "0x32")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))" (( "(") (binary_expression "*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36)" (pointer_expression "*(char *)((int)puVar38 + 0x36)" (* "*") (cast_expression "(char *)((int)puVar38 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar38 + 0x36)" (( "(") (binary_expression "(int)puVar38 + 0x36" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (+ "+") (number_literal "0x36")) () ")")))) (== "==") (pointer_expression "*(char *)((int)puVar36 + 0x36)" (* "*") (cast_expression "(char *)((int)puVar36 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar36 + 0x36)" (( "(") (binary_expression "(int)puVar36 + 0x36" (cast_expression "(int)puVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar36")) (+ "+") (number_literal "0x36")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar16 = FUN_00087c20(), iVar16 != 0)" (( "(") (comma_expression "iVar16 = FUN_00087c20(), iVar16 != 0" (assignment_expression "iVar16 = FUN_00087c20()" (identifier "iVar16") (= "=") (call_expression "FUN_00087c20()" (identifier "FUN_00087c20") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar36 = (undefined4 *)puVar36[5];" (assignment_expression "puVar36 = (undefined4 *)puVar36[5]" (identifier "puVar36") (= "=") (cast_expression "(undefined4 *)puVar36[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar36[5]" (identifier "puVar36") ([ "[") (number_literal "5") (] "]")))) (; ";")) (} "}"))) (expression_statement "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);" (call_expression "FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" (identifier "FUN_00072f80") (argument_list "(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04)" (( "(") (subscript_expression "puVar36[0xb]" (identifier "puVar36") ([ "[") (number_literal "0xb") (] "]")) (, ",") (identifier "local_140") (, ",") (identifier "extraout_ECX_04") (, ",") (identifier "extraout_ECX_04") () ")"))) (; ";")) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" (identifier "FUN_00090ee0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" (identifier "FUN_0007e240") (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar36)" (( "(") (identifier "piVar34") (, ",") (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" (& "&") (identifier "UNK_00067fba")) (+ "+") (identifier "unaff_EDI")) (, ",") (pointer_expression "*puVar36" (* "*") (identifier "puVar36")) () ")"))) (; ";")) (expression_statement "FUN_00072f80(puVar38[0xb],local_134);" (call_expression "FUN_00072f80(puVar38[0xb],local_134)" (identifier "FUN_00072f80") (argument_list "(puVar38[0xb],local_134)" (( "(") (subscript_expression "puVar38[0xb]" (identifier "puVar38") ([ "[") (number_literal "0xb") (] "]")) (, ",") (identifier "local_134") () ")"))) (; ";")) (expression_statement "FUN_00090ee0();" (call_expression "FUN_00090ee0()" (identifier "FUN_00090ee0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0 < piVar34[0x1a]) {\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" (if "if") (parenthesized_expression "(0 < piVar34[0x1a])" (( "(") (binary_expression "0 < piVar34[0x1a]" (number_literal "0") (< "<") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;\n        }" ({ "{") (expression_statement "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;" (assignment_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1" (pointer_expression "*(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (* "*") (cast_expression "(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]"))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);" (call_expression "FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" (identifier "FUN_0007e240") (argument_list "(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05)" (( "(") (identifier "piVar34") (, ",") (binary_expression "&UNK_00067fba + unaff_EDI" (pointer_expression "&UNK_00067fba" (& "&") (identifier "UNK_00067fba")) (+ "+") (identifier "unaff_EDI")) (, ",") (pointer_expression "*puVar38" (* "*") (identifier "puVar38")) (, ",") (identifier "extraout_ECX_05") () ")"))) (; ";")) (expression_statement "local_14c = FUN_00073150(0);" (assignment_expression "local_14c = FUN_00073150(0)" (identifier "local_14c") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" (identifier "uVar33") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00072f80(local_168,1);" (call_expression "FUN_00072f80(local_168,1)" (identifier "FUN_00072f80") (argument_list "(local_168,1)" (( "(") (identifier "local_168") (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x18) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x18) & 4" (pointer_expression "*(byte *)(iVar15 + 0x18)" (* "*") (cast_expression "(byte *)(iVar15 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar5 = *(ushort *)(puVar36 + 0xd);\n          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }\n          uVar33 = 0;\n          if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }\n        }" ({ "{") (expression_statement "uVar5 = *(ushort *)(puVar36 + 0xd);" (assignment_expression "uVar5 = *(ushort *)(puVar36 + 0xd)" (identifier "uVar5") (= "=") (pointer_expression "*(ushort *)(puVar36 + 0xd)" (* "*") (cast_expression "(ushort *)(puVar36 + 0xd)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0xd)" (( "(") (binary_expression "puVar36 + 0xd" (identifier "puVar36") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (for_statement "for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" (for "for") (( "(") (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";") (binary_expression "(int)uVar35 < (int)(uint)uVar5" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (< "<") (cast_expression "(int)(uint)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)uVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar5")))) (; ";") (assignment_expression "uVar35 = uVar35 + 1" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }\n          }" ({ "{") (if_statement "if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))\n            {\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" (if "if") (parenthesized_expression "((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))" (( "(") (binary_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0)" (parenthesized_expression "(*(int *)(puVar36[8] + uVar35 * 4) == 0)" (( "(") (binary_expression "*(int *)(puVar36[8] + uVar35 * 4) == 0" (pointer_expression "*(int *)(puVar36[8] + uVar35 * 4)" (* "*") (cast_expression "(int *)(puVar36[8] + uVar35 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36[8] + uVar35 * 4)" (( "(") (binary_expression "puVar36[8] + uVar35 * 4" (subscript_expression "puVar36[8]" (identifier "puVar36") ([ "[") (number_literal "8") (] "]")) (+ "+") (binary_expression "uVar35 * 4" (identifier "uVar35") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar16 = FUN_000446c0(), iVar16 != 0)" (( "(") (comma_expression "iVar16 = FUN_000446c0(), iVar16 != 0" (assignment_expression "iVar16 = FUN_000446c0()" (identifier "iVar16") (= "=") (call_expression "FUN_000446c0()" (identifier "FUN_000446c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              uVar33 = 0;\n              goto LAB_000f55d2;\n            }" ({ "{") (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" (identifier "uVar33") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000f55d2;" (goto "goto") (statement_identifier "LAB_000f55d2") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" (identifier "uVar33") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar35 == uVar5) {\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" (if "if") (parenthesized_expression "(uVar35 == uVar5)" (( "(") (binary_expression "uVar35 == uVar5" (identifier "uVar35") (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\n            uVar33 = 0x10;\n            FUN_00073150(0);\n          }" ({ "{") (expression_statement "uVar33 = 0x10;" (assignment_expression "uVar33 = 0x10" (identifier "uVar33") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000f55d2:\n        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" (statement_identifier "LAB_000f55d2") (: ":") (if_statement "if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {\n          uVar33 = uVar33 | 1;\n        }" (if "if") (parenthesized_expression "(((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2))" (( "(") (binary_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" (parenthesized_expression "((*(byte *)(puVar17 + 9) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(puVar17 + 9) & 0x20) != 0" (parenthesized_expression "(*(byte *)(puVar17 + 9) & 0x20)" (( "(") (binary_expression "*(byte *)(puVar17 + 9) & 0x20" (pointer_expression "*(byte *)(puVar17 + 9)" (* "*") (cast_expression "(byte *)(puVar17 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 9)" (( "(") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)puVar38 + 0x37) & 3) == 2)" (( "(") (binary_expression "(*(byte *)((int)puVar38 + 0x37) & 3) == 2" (parenthesized_expression "(*(byte *)((int)puVar38 + 0x37) & 3)" (( "(") (binary_expression "*(byte *)((int)puVar38 + 0x37) & 3" (pointer_expression "*(byte *)((int)puVar38 + 0x37)" (* "*") (cast_expression "(byte *)((int)puVar38 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar38 + 0x37)" (( "(") (binary_expression "(int)puVar38 + 0x37" (cast_expression "(int)puVar38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar38")) (+ "+") (number_literal "0x37")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n          uVar33 = uVar33 | 1;\n        }" ({ "{") (expression_statement "uVar33 = uVar33 | 1;" (assignment_expression "uVar33 = uVar33 | 1" (identifier "uVar33") (= "=") (binary_expression "uVar33 | 1" (identifier "uVar33") (| "|") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "FUN_00073150(local_168);" (call_expression "FUN_00073150(local_168)" (identifier "FUN_00073150") (argument_list "(local_168)" (( "(") (identifier "local_168") () ")"))) (; ";")) (if_statement "if (0 < piVar34[0x1a]) {\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" (if "if") (parenthesized_expression "(0 < piVar34[0x1a])" (( "(") (binary_expression "0 < piVar34[0x1a]" (number_literal "0") (< "<") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;\n        }" ({ "{") (expression_statement "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;" (assignment_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8" (pointer_expression "*(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (* "*") (cast_expression "(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16)" (( "(") (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16" (binary_expression "piVar34[0x1a] * 0x18 + piVar34[0x19]" (binary_expression "piVar34[0x1a] * 0x18" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]"))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (binary_expression "uVar33 | 8" (identifier "uVar33") (| "|") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "FUN_00073150(local_14c + 1);" (call_expression "FUN_00073150(local_14c + 1)" (identifier "FUN_00073150") (argument_list "(local_14c + 1)" (( "(") (binary_expression "local_14c + 1" (identifier "local_14c") (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if ((int)local_14c < 0) {\n          local_14c = piVar34[0x1a] + -1;\n        }" (if "if") (parenthesized_expression "((int)local_14c < 0)" (( "(") (binary_expression "(int)local_14c < 0" (cast_expression "(int)local_14c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_14c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          local_14c = piVar34[0x1a] + -1;\n        }" ({ "{") (expression_statement "local_14c = piVar34[0x1a] + -1;" (assignment_expression "local_14c = piVar34[0x1a] + -1" (identifier "local_14c") (= "=") (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar16 = unaff_EDI + 0xc9455;" (assignment_expression "iVar16 = unaff_EDI + 0xc9455" (identifier "iVar16") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" (if "if") (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" (* "*") (cast_expression "(char *)(*piVar34 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + 0x4d)" (( "(") (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar16 = local_14c * 0x18 + piVar34[0x19];\n        }" ({ "{") (expression_statement "iVar16 = local_14c * 0x18 + piVar34[0x19];" (assignment_expression "iVar16 = local_14c * 0x18 + piVar34[0x19]" (identifier "iVar16") (= "=") (binary_expression "local_14c * 0x18 + piVar34[0x19]" (binary_expression "local_14c * 0x18" (identifier "local_14c") (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar16 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar16 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_130 != 0) {\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" (if "if") (parenthesized_expression "(local_130 != 0)" (( "(") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n      }" ({ "{") (if_statement "if ((int)local_130 < 0) {\n          local_130 = piVar34[0x1a] + -1;\n        }" (if "if") (parenthesized_expression "((int)local_130 < 0)" (( "(") (binary_expression "(int)local_130 < 0" (cast_expression "(int)local_130" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_130")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          local_130 = piVar34[0x1a] + -1;\n        }" ({ "{") (expression_statement "local_130 = piVar34[0x1a] + -1;" (assignment_expression "local_130 = piVar34[0x1a] + -1" (identifier "local_130") (= "=") (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" (identifier "iVar15") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" (if "if") (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" (* "*") (cast_expression "(char *)(*piVar34 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + 0x4d)" (( "(") (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar15 = local_130 * 0x18 + piVar34[0x19];\n        }" ({ "{") (expression_statement "iVar15 = local_130 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_130 * 0x18 + piVar34[0x19]" (identifier "iVar15") (= "=") (binary_expression "local_130 * 0x18 + piVar34[0x19]" (binary_expression "local_130 * 0x18" (identifier "local_130") (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" (* "*") (cast_expression "(int *)(iVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 8)" (( "(") (binary_expression "iVar15 + 8" (identifier "iVar15") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (} "}"))) (if_statement "if (local_16c != 0) {\n        FUN_00045e10();\n      }" (if "if") (parenthesized_expression "(local_16c != 0)" (( "(") (binary_expression "local_16c != 0" (identifier "local_16c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00045e10();\n      }" ({ "{") (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" (identifier "FUN_00045e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_168 != (int *)0x0) {\n        FUN_00045e10();\n      }" (if "if") (parenthesized_expression "(local_168 != (int *)0x0)" (( "(") (binary_expression "local_168 != (int *)0x0" (identifier "local_168") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_00045e10();\n      }" ({ "{") (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" (identifier "FUN_00045e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_170 != 0) {\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" (if "if") (parenthesized_expression "(local_170 != 0)" (( "(") (binary_expression "local_170 != 0" (identifier "local_170") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }\n        FUN_00073150(0);\n        if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }\n        iVar15 = unaff_EDI + 0xc9455;\n        if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }\n        *(int *)(iVar15 + 8) = piVar34[0x1a];\n        FUN_00073150(0);\n        goto LAB_000f380e;\n      }" ({ "{") (if_statement "if (piVar11[0x1c] != 0) {\n          FUN_000916b0();\n        }" (if "if") (parenthesized_expression "(piVar11[0x1c] != 0)" (( "(") (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" (identifier "piVar11") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000916b0();\n        }" ({ "{") (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" (identifier "FUN_000916b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((int)local_170 < 0) {\n          local_170 = piVar34[0x1a] + -1;\n        }" (if "if") (parenthesized_expression "((int)local_170 < 0)" (( "(") (binary_expression "(int)local_170 < 0" (cast_expression "(int)local_170" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_170")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          local_170 = piVar34[0x1a] + -1;\n        }" ({ "{") (expression_statement "local_170 = piVar34[0x1a] + -1;" (assignment_expression "local_170 = piVar34[0x1a] + -1" (identifier "local_170") (= "=") (binary_expression "piVar34[0x1a] + -1" (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar15 = unaff_EDI + 0xc9455;" (assignment_expression "iVar15 = unaff_EDI + 0xc9455" (identifier "iVar15") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*piVar34 + 0x4d) == '\0') {\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" (if "if") (parenthesized_expression "(*(char *)(*piVar34 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*piVar34 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar34 + 0x4d)" (* "*") (cast_expression "(char *)(*piVar34 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + 0x4d)" (( "(") (binary_expression "*piVar34 + 0x4d" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar15 = local_170 * 0x18 + piVar34[0x19];\n        }" ({ "{") (expression_statement "iVar15 = local_170 * 0x18 + piVar34[0x19];" (assignment_expression "iVar15 = local_170 * 0x18 + piVar34[0x19]" (identifier "iVar15") (= "=") (binary_expression "local_170 * 0x18 + piVar34[0x19]" (binary_expression "local_170 * 0x18" (identifier "local_170") (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "piVar34[0x19]" (identifier "piVar34") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar15 + 8) = piVar34[0x1a];" (assignment_expression "*(int *)(iVar15 + 8) = piVar34[0x1a]" (pointer_expression "*(int *)(iVar15 + 8)" (* "*") (cast_expression "(int *)(iVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 8)" (( "(") (binary_expression "iVar15 + 8" (identifier "iVar15") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar34[0x1a]" (identifier "piVar34") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_000f380e;" (goto "goto") (statement_identifier "LAB_000f380e") (; ";")) (} "}"))) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)) {\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0))" (( "(") (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&\n         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0))" (( "(") (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') &&\n          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x12)" (( "(") (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)" (( "(") (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (, ",") (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" (identifier "piVar11") ([ "[") (number_literal "0x1e") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0)" (( "(") (comma_expression "local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_17c = (int *)piVar11[0x1c]" (identifier "local_17c") (= "=") (cast_expression "(int *)piVar11[0x1c]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[0x1c]" (identifier "piVar11") ([ "[") (number_literal "0x1c") (] "]")))) (, ",") (comma_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),\n         local_17c != (int *)0x0" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (, ",") (binary_expression "local_17c != (int *)0x0" (identifier "local_17c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n        FUN_000916b0();\n        local_17c = (int *)0x0;\n      }" ({ "{") (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" (identifier "FUN_000916b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000f3673;" (goto "goto") (statement_identifier "LAB_000f3673") (; ";")) (} "}"))) (labeled_statement "LAB_000f380e:\n    local_118 = 0;" (statement_identifier "LAB_000f380e") (: ":") (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" (identifier "local_118") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((*(byte *)(piVar12 + 9) & 8) != 0) {\n      local_118 = FUN_00055fd0();\n    }" (if "if") (parenthesized_expression "((*(byte *)(piVar12 + 9) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(piVar12 + 9) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar12 + 9) & 8)" (( "(") (binary_expression "*(byte *)(piVar12 + 9) & 8" (pointer_expression "*(byte *)(piVar12 + 9)" (* "*") (cast_expression "(byte *)(piVar12 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12 + 9)" (( "(") (binary_expression "piVar12 + 9" (identifier "piVar12") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_118 = FUN_00055fd0();\n    }" ({ "{") (expression_statement "local_118 = FUN_00055fd0();" (assignment_expression "local_118 = FUN_00055fd0()" (identifier "local_118") (= "=") (call_expression "FUN_00055fd0()" (identifier "FUN_00055fd0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "local_110 = piVar11[0xb];" (assignment_expression "local_110 = piVar11[0xb]" (identifier "local_110") (= "=") (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" (identifier "iVar16") (= "=") (binary_expression "local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a)" (binary_expression "local_110 + 1" (identifier "local_110") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))))) (; ";")) (expression_statement "iVar15 = local_110 + 1;" (assignment_expression "iVar15 = local_110 + 1" (identifier "iVar15") (= "=") (binary_expression "local_110 + 1" (identifier "local_110") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11[0xb] = iVar16;" (assignment_expression "piVar11[0xb] = iVar16" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "local_12c = iVar15;" (assignment_expression "local_12c = iVar15" (identifier "local_12c") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (piVar12[0xe] != 0) {\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" (if "if") (parenthesized_expression "(piVar12[0xe] != 0)" (( "(") (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_12c = local_110 + 2;\n      piVar11[0xb] = iVar16 + 1;\n      local_110 = iVar15;\n    }" ({ "{") (expression_statement "local_12c = local_110 + 2;" (assignment_expression "local_12c = local_110 + 2" (identifier "local_12c") (= "=") (binary_expression "local_110 + 2" (identifier "local_110") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar11[0xb] = iVar16 + 1;" (assignment_expression "piVar11[0xb] = iVar16 + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_110 = iVar15;" (assignment_expression "local_110 = iVar15" (identifier "local_110") (= "=") (identifier "iVar15")) (; ";")) (} "}"))) (expression_statement "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;" (assignment_expression "local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" (identifier "local_130") (= "=") (binary_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01" (parenthesized_expression "((uint)piVar12[9] >> 7 & 0xff ^ 1)" (( "(") (binary_expression "(uint)piVar12[9] >> 7 & 0xff ^ 1" (binary_expression "(uint)piVar12[9] >> 7 & 0xff" (binary_expression "(uint)piVar12[9] >> 7" (cast_expression "(uint)piVar12[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[9]" (identifier "piVar12") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (number_literal "7")) (& "&") (number_literal "0xff")) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "0xffffff01"))) (; ";")) (if_statement "if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" (if "if") (parenthesized_expression "((param_1 == (int *)0x0) || (param_1[1] < 1))" (( "(") (binary_expression "(param_1 == (int *)0x0) || (param_1[1] < 1)" (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_1[1] < 1)" (( "(") (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (< "<") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\nLAB_000f4012:\n      local_140 = 0xffffffff;\n    }" ({ "{") (labeled_statement "LAB_000f4012:\n      local_140 = 0xffffffff;" (statement_identifier "LAB_000f4012") (: ":") (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" (identifier "local_140") (= "=") (number_literal "0xffffffff")) (; ";"))) (} "}")) (else_clause "else {\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" (else "else") (compound_statement "{\n      iVar16 = 0;\n      do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);\n      if (param_1[1] < 1) goto LAB_000f4012;\n      local_14c = 0;\n      local_140 = 0xffffffff;\n      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n      do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);\n    }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      } while (iVar16 < param_1[1]);" (do "do") (compound_statement "{\n        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;\n        iVar16 = iVar16 + 1;\n      }" ({ "{") (expression_statement "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(*param_1 + 4 + iVar16 * 8)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 4 + iVar16 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4 + iVar16 * 8)" (( "(") (binary_expression "*param_1 + 4 + iVar16 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar16 * 8" (identifier "iVar16") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 < param_1[1])" (( "(") (binary_expression "iVar16 < param_1[1]" (identifier "iVar16") (< "<") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (; ";")) (if_statement "if (param_1[1] < 1) goto LAB_000f4012;" (if "if") (parenthesized_expression "(param_1[1] < 1)" (( "(") (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000f4012;" (goto "goto") (statement_identifier "LAB_000f4012") (; ";"))) (expression_statement "local_14c = 0;" (assignment_expression "local_14c = 0" (identifier "local_14c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_140 = 0xffffffff;" (assignment_expression "local_140 = 0xffffffff" (identifier "local_140") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" (identifier "local_170") (= "=") (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (do_statement "do {\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      } while ((int)local_14c < param_1[1]);" (do "do") (compound_statement "{\n        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);\n        local_174 = (byte *)*puVar17;\n        if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }\nLAB_000f399e:\n        iVar16 = FUN_00045bc0();\n        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }\n        local_130 = 0;\n        local_140 = local_14c;\nLAB_000f39c8:\n        local_14c = local_14c + 1;\n      }" ({ "{") (expression_statement "puVar17 = (undefined4 *)(local_14c * 8 + *param_1);" (assignment_expression "puVar17 = (undefined4 *)(local_14c * 8 + *param_1)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(local_14c * 8 + *param_1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_14c * 8 + *param_1)" (( "(") (binary_expression "local_14c * 8 + *param_1" (binary_expression "local_14c * 8" (identifier "local_14c") (* "*") (number_literal "8")) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (expression_statement "local_174 = (byte *)*puVar17;" (assignment_expression "local_174 = (byte *)*puVar17" (identifier "local_174") (= "=") (cast_expression "(byte *)*puVar17" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")))) (; ";")) (if_statement "if (0 < (int)local_170) {\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" (if "if") (parenthesized_expression "(0 < (int)local_170)" (( "(") (binary_expression "0 < (int)local_170" (number_literal "0") (< "<") (cast_expression "(int)local_170" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_170"))) () ")")) (compound_statement "{\n          uVar35 = 0;\n          do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);\n        }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          } while (uVar35 != local_170);" (do "do") (compound_statement "{\n            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);\n            pbVar29 = local_174;\n            bVar1 = *local_174;\n            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }\n            uVar35 = uVar35 + 1;\n          }" ({ "{") (expression_statement "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);" (assignment_expression "pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10)" (identifier "pbVar21") (= "=") (pointer_expression "*(byte **)(piVar12[1] + uVar35 * 0x10)" (* "*") (cast_expression "(byte **)(piVar12[1] + uVar35 * 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar12[1] + uVar35 * 0x10)" (( "(") (binary_expression "piVar12[1] + uVar35 * 0x10" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar35 * 0x10" (identifier "uVar35") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (expression_statement "pbVar29 = local_174;" (assignment_expression "pbVar29 = local_174" (identifier "pbVar29") (= "=") (identifier "local_174")) (; ";")) (expression_statement "bVar1 = *local_174;" (assignment_expression "bVar1 = *local_174" (identifier "bVar1") (= "=") (pointer_expression "*local_174" (* "*") (identifier "local_174"))) (; ";")) (if_statement "if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" (if "if") (parenthesized_expression "((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI])" (( "(") (binary_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==\n                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" (( "(") (pointer_expression "&UNK_00076279" (& "&") (identifier "UNK_00076279")) () ")")) ([ "[") (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21")) (+ "+") (identifier "unaff_EDI")) (] "]")) (== "==") (subscript_expression "(&UNK_00076279)[(uint)*local_174 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" (( "(") (pointer_expression "&UNK_00076279" (& "&") (identifier "UNK_00076279")) () ")")) ([ "[") (binary_expression "(uint)*local_174 + unaff_EDI" (binary_expression "(uint)*local_174" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "local_174")) (+ "+") (identifier "unaff_EDI")) (] "]"))) () ")")) (compound_statement "{\n              do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);\n            }" ({ "{") (do_statement "do {\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);" (do "do") (compound_statement "{\n                if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }\n                pbVar21 = pbVar21 + 1;\n                pbVar29 = pbVar29 + 1;\n                bVar1 = *pbVar29;\n              }" ({ "{") (if_statement "if (bVar1 == 0) {\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  puVar17[1] = uVar35;\n                  if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }\n                  local_130 = (uint)(byte)local_130;\n                  if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }\n                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);\n                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;\n                  local_174 = *(byte **)(*param_1 + local_14c * 8);\n                  goto LAB_000f399e;\n                }" ({ "{") (expression_statement "puVar17[1] = uVar35;" (assignment_expression "puVar17[1] = uVar35" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar35")) (; ";")) (if_statement "if (uVar35 != local_14c) {\n                    local_130._0_1_ = 0;\n                  }" (if "if") (parenthesized_expression "(uVar35 != local_14c)" (( "(") (binary_expression "uVar35 != local_14c" (identifier "uVar35") (!= "!=") (identifier "local_14c")) () ")")) (compound_statement "{\n                    local_130._0_1_ = 0;\n                  }" ({ "{") (expression_statement "local_130._0_1_ = 0;" (assignment_expression "local_130._0_1_ = 0" (field_expression "local_130._0_1_" (identifier "local_130") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_130 = (uint)(byte)local_130;" (assignment_expression "local_130 = (uint)(byte)local_130" (identifier "local_130") (= "=") (cast_expression "(uint)(byte)local_130" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_130" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_130")))) (; ";")) (if_statement "if ((int)(short)piVar12[10] == uVar35) {\n                    local_140 = local_14c;\n                  }" (if "if") (parenthesized_expression "((int)(short)piVar12[10] == uVar35)" (( "(") (binary_expression "(int)(short)piVar12[10] == uVar35" (cast_expression "(int)(short)piVar12[10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]")))) (== "==") (identifier "uVar35")) () ")")) (compound_statement "{\n                    local_140 = local_14c;\n                  }" ({ "{") (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" (identifier "local_140") (= "=") (identifier "local_14c")) (; ";")) (} "}"))) (expression_statement "local_170 = (uint)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_170 = (uint)*(short *)((int)piVar12 + 0x2a)" (identifier "local_170") (= "=") (binary_expression "(uint)*(short *)((int)piVar12 + 0x2a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (if_statement "if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;" (if "if") (parenthesized_expression "((int)uVar35 < (int)local_170)" (( "(") (binary_expression "(int)uVar35 < (int)local_170" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (< "<") (cast_expression "(int)local_170" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_170"))) () ")")) (goto_statement "goto LAB_000f39c8;" (goto "goto") (statement_identifier "LAB_000f39c8") (; ";"))) (expression_statement "local_174 = *(byte **)(*param_1 + local_14c * 8);" (assignment_expression "local_174 = *(byte **)(*param_1 + local_14c * 8)" (identifier "local_174") (= "=") (pointer_expression "*(byte **)(*param_1 + local_14c * 8)" (* "*") (cast_expression "(byte **)(*param_1 + local_14c * 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + local_14c * 8)" (( "(") (binary_expression "*param_1 + local_14c * 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "local_14c * 8" (identifier "local_14c") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (goto_statement "goto LAB_000f399e;" (goto "goto") (statement_identifier "LAB_000f399e") (; ";")) (} "}"))) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar29 = pbVar29 + 1;" (assignment_expression "pbVar29 = pbVar29 + 1" (identifier "pbVar29") (= "=") (binary_expression "pbVar29 + 1" (identifier "pbVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar29;" (assignment_expression "bVar1 = *pbVar29" (identifier "bVar1") (= "=") (pointer_expression "*pbVar29" (* "*") (identifier "pbVar29"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI])" (( "(") (binary_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==\n                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (subscript_expression "(&UNK_00076279)[(uint)bVar1 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" (( "(") (pointer_expression "&UNK_00076279" (& "&") (identifier "UNK_00076279")) () ")")) ([ "[") (binary_expression "(uint)bVar1 + unaff_EDI" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (+ "+") (identifier "unaff_EDI")) (] "]")) (== "==") (subscript_expression "(&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]" (parenthesized_expression "(&UNK_00076279)" (( "(") (pointer_expression "&UNK_00076279" (& "&") (identifier "UNK_00076279")) () ")")) ([ "[") (binary_expression "(uint)*pbVar21 + unaff_EDI" (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21")) (+ "+") (identifier "unaff_EDI")) (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar35 != local_170)" (( "(") (binary_expression "uVar35 != local_170" (identifier "uVar35") (!= "!=") (identifier "local_170")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000f399e:\n        iVar16 = FUN_00045bc0();" (statement_identifier "LAB_000f399e") (: ":") (expression_statement "iVar16 = FUN_00045bc0();" (assignment_expression "iVar16 = FUN_00045bc0()" (identifier "iVar16") (= "=") (call_expression "FUN_00045bc0()" (identifier "FUN_00045bc0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" (if "if") (parenthesized_expression "((iVar16 == 0) || ((uVar6 & 0x20) != 0))" (( "(") (binary_expression "(iVar16 == 0) || ((uVar6 & 0x20) != 0)" (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar6 & 0x20) != 0)" (( "(") (binary_expression "(uVar6 & 0x20) != 0" (parenthesized_expression "(uVar6 & 0x20)" (( "(") (binary_expression "uVar6 & 0x20" (identifier "uVar6") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);\n          *(undefined1 *)((int)piVar11 + 0x11) = 1;\n          local_17c = (int *)0x0;\n          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n          goto LAB_000f3673;\n        }" ({ "{") (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" (identifier "FUN_000886b0") (argument_list "(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174)" (( "(") (identifier "piVar11") (, ",") (binary_expression "unaff_EDI + 0x77cf9" (identifier "unaff_EDI") (+ "+") (number_literal "0x77cf9")) (, ",") (identifier "iVar23") (, ",") (number_literal "0") (, ",") (identifier "local_174") () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)piVar11 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)piVar11 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)piVar11 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)piVar11 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x11)" (( "(") (binary_expression "(int)piVar11 + 0x11" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (goto_statement "goto LAB_000f3673;" (goto "goto") (statement_identifier "LAB_000f3673") (; ";")) (} "}"))) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" (identifier "local_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_140 = local_14c;" (assignment_expression "local_140 = local_14c" (identifier "local_140") (= "=") (identifier "local_14c")) (; ";")) (labeled_statement "LAB_000f39c8:\n        local_14c = local_14c + 1;" (statement_identifier "LAB_000f39c8") (: ":") (expression_statement "local_14c = local_14c + 1;" (assignment_expression "local_14c = local_14c + 1" (identifier "local_14c") (= "=") (binary_expression "local_14c + 1" (identifier "local_14c") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)local_14c < param_1[1])" (( "(") (binary_expression "(int)local_14c < param_1[1]" (cast_expression "(int)local_14c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_14c")) (< "<") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (; ";")) (} "}")))) (expression_statement "iVar16 = local_12c + 1;" (assignment_expression "iVar16 = local_12c + 1" (identifier "iVar16") (= "=") (binary_expression "local_12c + 1" (identifier "local_12c") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_158 == (int *)0x0) {\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }\n    else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" (if "if") (parenthesized_expression "(local_158 == (int *)0x0)" (( "(") (binary_expression "local_158 == (int *)0x0" (identifier "local_158") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar35 = 0;\n      do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);\n      bVar10 = false;\n      local_b0._0_4_ = piVar11;\n      if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }\n    }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      } while (uVar35 < 0x1c);" (do "do") (compound_statement "{\n        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;\n        uVar35 = uVar35 + 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + (uVar35 - 4))" (* "*") (cast_expression "(undefined4 *)((int)local_a8 + (uVar35 - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + (uVar35 - 4))" (( "(") (binary_expression "(int)local_a8 + (uVar35 - 4)" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (parenthesized_expression "(uVar35 - 4)" (( "(") (binary_expression "uVar35 - 4" (identifier "uVar35") (- "-") (number_literal "4")) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 4" (identifier "uVar35") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar35 < 0x1c)" (( "(") (binary_expression "uVar35 < 0x1c" (identifier "uVar35") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (expression_statement "local_b0._0_4_ = piVar11;" (assignment_expression "local_b0._0_4_ = piVar11" (field_expression "local_b0._0_4_" (identifier "local_b0") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "piVar11")) (; ";")) (if_statement "if (local_148 == (int *)0x0) {\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }\n      else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" (if "if") (parenthesized_expression "(local_148 == (int *)0x0)" (( "(") (binary_expression "local_148 == (int *)0x0" (identifier "local_148") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_170 = 0;\n        uVar35 = 0;\n        local_174 = (byte *)0x0;\n      }" ({ "{") (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_174 = (byte *)0x0;" (assignment_expression "local_174 = (byte *)0x0" (identifier "local_174") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" (else "else") (compound_statement "{\n        iVar18 = 0;\n        local_174 = (byte *)*local_148;\n        piVar34 = local_148 + 1;\n        if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }\n        local_170 = 0;\n        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);\n      }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_174 = (byte *)*local_148;" (assignment_expression "local_174 = (byte *)*local_148" (identifier "local_174") (= "=") (cast_expression "(byte *)*local_148" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_148" (* "*") (identifier "local_148")))) (; ";")) (expression_statement "piVar34 = local_148 + 1;" (assignment_expression "piVar34 = local_148 + 1" (identifier "piVar34") (= "=") (binary_expression "local_148 + 1" (identifier "local_148") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0 < (int)local_174) {\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" (if "if") (parenthesized_expression "(0 < (int)local_174)" (( "(") (binary_expression "0 < (int)local_174" (number_literal "0") (< "<") (cast_expression "(int)local_174" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_174"))) () ")")) (compound_statement "{\n          do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);\n          local_170 = 0;\n          local_16c._0_1_ = param_1 == (int *)0x0;\n          uVar35 = (uint)local_16c._0_1_;\n          goto LAB_000f3c52;\n        }" ({ "{") (do_statement "do {\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          } while (iVar18 < *local_148);" (do "do") (compound_statement "{\n            iVar22 = *piVar34;\n            if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }\nLAB_000f41e7:\n            iVar18 = iVar18 + 1;\n            piVar34 = piVar34 + 5;\n          }" ({ "{") (expression_statement "iVar22 = *piVar34;" (assignment_expression "iVar22 = *piVar34" (identifier "iVar22") (= "=") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) (; ";")) (if_statement "if (iVar22 != 0) {\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar33 = (ushort)local_98;\n              local_b4 = &local_b0;\n              local_c0 = 0;\n              local_98 = local_98 & 0xffff6fef;\n              local_cc = (int *)local_b0;\n              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];\n              ((int *)local_b0)[0x33] = iVar24;\n              local_c8 = unaff_EDI + -0x50327;\n              local_c4 = unaff_EDI + -0x606a7;\n              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }\n              FUN_000638a0();\n              FUN_00063e30();\n              local_17c = (int *)0x0;\n              if (param_3 != (int *)0x0) goto LAB_000f36b0;\n              if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }\n              goto LAB_000f374a;\n            }" ({ "{") (expression_statement "uVar33 = (ushort)local_98;" (assignment_expression "uVar33 = (ushort)local_98" (identifier "uVar33") (= "=") (cast_expression "(ushort)local_98" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_98"))) (; ";")) (expression_statement "local_b4 = &local_b0;" (assignment_expression "local_b4 = &local_b0" (identifier "local_b4") (= "=") (pointer_expression "&local_b0" (& "&") (identifier "local_b0"))) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98 = local_98 & 0xffff6fef;" (assignment_expression "local_98 = local_98 & 0xffff6fef" (identifier "local_98") (= "=") (binary_expression "local_98 & 0xffff6fef" (identifier "local_98") (& "&") (number_literal "0xffff6fef"))) (; ";")) (expression_statement "local_cc = (int *)local_b0;" (assignment_expression "local_cc = (int *)local_b0" (identifier "local_cc") (= "=") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (; ";")) (expression_statement "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];" (assignment_expression "iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" (identifier "iVar24") (= "=") (binary_expression "*(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33]" (pointer_expression "*(int *)(iVar22 + 0x18)" (* "*") (cast_expression "(int *)(iVar22 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x18)" (( "(") (binary_expression "iVar22 + 0x18" (identifier "iVar22") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" (( "(") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "0x33") (] "]")))) (; ";")) (expression_statement "((int *)local_b0)[0x33] = iVar24;" (assignment_expression "((int *)local_b0)[0x33] = iVar24" (subscript_expression "((int *)local_b0)[0x33]" (parenthesized_expression "((int *)local_b0)" (( "(") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "0x33") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "local_c8 = unaff_EDI + -0x50327;" (assignment_expression "local_c8 = unaff_EDI + -0x50327" (identifier "local_c8") (= "=") (binary_expression "unaff_EDI + -0x50327" (identifier "unaff_EDI") (+ "+") (number_literal "-0x50327"))) (; ";")) (expression_statement "local_c4 = unaff_EDI + -0x606a7;" (assignment_expression "local_c4 = unaff_EDI + -0x606a7" (identifier "local_c4") (= "=") (binary_expression "unaff_EDI + -0x606a7" (identifier "unaff_EDI") (+ "+") (number_literal "-0x606a7"))) (; ";")) (if_statement "if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }\n              else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)local_b0 + 0x74) < iVar24)" (( "(") (binary_expression "*(int *)(*(int *)local_b0 + 0x74) < iVar24" (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" (* "*") (cast_expression "(int *)(*(int *)local_b0 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_b0 + 0x74)" (( "(") (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" (* "*") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (+ "+") (number_literal "0x74")) () ")")))) (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));\n              }" ({ "{") (expression_statement "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74));" (call_expression "FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" (identifier "FUN_000886b0") (argument_list "((int *)local_b0,&UNK_000768cd + unaff_EDI,\n                             *(int *)(*(int *)local_b0 + 0x74))" (( "(") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) (, ",") (binary_expression "&UNK_000768cd + unaff_EDI" (pointer_expression "&UNK_000768cd" (& "&") (identifier "UNK_000768cd")) (+ "+") (identifier "unaff_EDI")) (, ",") (pointer_expression "*(int *)(*(int *)local_b0 + 0x74)" (* "*") (cast_expression "(int *)(*(int *)local_b0 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_b0 + 0x74)" (( "(") (binary_expression "*(int *)local_b0 + 0x74" (pointer_expression "*(int *)local_b0" (* "*") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (+ "+") (number_literal "0x74")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" (else "else") (compound_statement "{\n                FUN_0005c830();\n                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);\n                if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }\n                if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }\n                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);\n                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;\n              }" ({ "{") (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" (identifier "FUN_0005c830") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);" (assignment_expression "local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" (identifier "local_cc") ([ "[") (number_literal "0x33") (] "]")) (= "=") (binary_expression "local_cc[0x33] - *(int *)(iVar22 + 0x18)" (subscript_expression "local_cc[0x33]" (identifier "local_cc") ([ "[") (number_literal "0x33") (] "]")) (- "-") (pointer_expression "*(int *)(iVar22 + 0x18)" (* "*") (cast_expression "(int *)(iVar22 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x18)" (( "(") (binary_expression "iVar22 + 0x18" (identifier "iVar22") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((local_98 & 0x10) != 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" (if "if") (parenthesized_expression "((local_98 & 0x10) != 0)" (( "(") (binary_expression "(local_98 & 0x10) != 0" (parenthesized_expression "(local_98 & 0x10)" (( "(") (binary_expression "local_98 & 0x10" (identifier "local_98") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;\n                }" ({ "{") (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" (* "*") (cast_expression "(uint *)(iVar22 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 4)" (( "(") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar22 + 4) | 2" (pointer_expression "*(uint *)(iVar22 + 4)" (* "*") (cast_expression "(uint *)(iVar22 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 4)" (( "(") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if ((short)(ushort)local_98 < 0) {\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" (if "if") (parenthesized_expression "((short)(ushort)local_98 < 0)" (( "(") (binary_expression "(short)(ushort)local_98 < 0" (cast_expression "(short)(ushort)local_98" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (cast_expression "(ushort)local_98" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_98"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;\n                }" ({ "{") (expression_statement "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;" (assignment_expression "*(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" (* "*") (cast_expression "(uint *)(iVar22 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 4)" (( "(") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar22 + 4) | 0x8000000" (pointer_expression "*(uint *)(iVar22 + 4)" (* "*") (cast_expression "(uint *)(iVar22 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 4)" (( "(") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4")) () ")")))) (| "|") (number_literal "0x8000000"))) (; ";")) (} "}"))) (expression_statement "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);" (assignment_expression "local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" (identifier "local_98") (= "=") (call_expression "CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" (identifier "CONCAT22") (argument_list "(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98)" (( "(") (field_expression "local_98._2_2_" (identifier "local_98") (. ".") (field_identifier "_2_2_")) (, ",") (binary_expression "uVar33 & 0x9010 | (ushort)local_98" (binary_expression "uVar33 & 0x9010" (identifier "uVar33") (& "&") (number_literal "0x9010")) (| "|") (cast_expression "(ushort)local_98" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_98"))) () ")")))) (; ";")) (if_statement "if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;" (if "if") (parenthesized_expression "((local_9c < 1) && (local_cc[9] < 1))" (( "(") (binary_expression "(local_9c < 1) && (local_cc[9] < 1)" (parenthesized_expression "(local_9c < 1)" (( "(") (binary_expression "local_9c < 1" (identifier "local_9c") (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_cc[9] < 1)" (( "(") (binary_expression "local_cc[9] < 1" (subscript_expression "local_cc[9]" (identifier "local_cc") ([ "[") (number_literal "9") (] "]")) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_000f41e7;" (goto "goto") (statement_identifier "LAB_000f41e7") (; ";"))) (} "}")))) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" (identifier "FUN_000638a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" (identifier "FUN_00063e30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_3 != (int *)0x0) goto LAB_000f36b0;" (if "if") (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000f36b0;" (goto "goto") (statement_identifier "LAB_000f36b0") (; ";"))) (if_statement "if (param_1 != (int *)0x0) {\n                FUN_0005b000();\n              }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                FUN_0005b000();\n              }" ({ "{") (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" (identifier "FUN_0005b000") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000f374a;" (goto "goto") (statement_identifier "LAB_000f374a") (; ";")) (} "}"))) (labeled_statement "LAB_000f41e7:\n            iVar18 = iVar18 + 1;" (statement_identifier "LAB_000f41e7") (: ":") (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar34 = piVar34 + 5;" (assignment_expression "piVar34 = piVar34 + 5" (identifier "piVar34") (= "=") (binary_expression "piVar34 + 5" (identifier "piVar34") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < *local_148)" (( "(") (binary_expression "iVar18 < *local_148" (identifier "iVar18") (< "<") (pointer_expression "*local_148" (* "*") (identifier "local_148"))) () ")")) (; ";")) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_16c._0_1_ = param_1 == (int *)0x0;" (assignment_expression "local_16c._0_1_ = param_1 == (int *)0x0" (field_expression "local_16c._0_1_" (identifier "local_16c") (. ".") (field_identifier "_0_1_")) (= "=") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "uVar35 = (uint)local_16c._0_1_;" (assignment_expression "uVar35 = (uint)local_16c._0_1_" (identifier "uVar35") (= "=") (cast_expression "(uint)local_16c._0_1_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_16c._0_1_" (identifier "local_16c") (. ".") (field_identifier "_0_1_")))) (; ";")) (goto_statement "goto LAB_000f3c52;" (goto "goto") (statement_identifier "LAB_000f3c52") (; ";")) (} "}"))) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);" (assignment_expression "uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" (identifier "uVar35") (= "=") (call_expression "(uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 == (int *)0x0 && local_174 != (byte *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0 && local_174 != (byte *)0x0" (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "local_174 != (byte *)0x0" (identifier "local_174") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" (else "else") (compound_statement "{\n      iVar18 = piVar11[0xb];\n      piVar11[0xb] = iVar18 + 1;\n      iVar22 = local_144[0x1a];\n      FUN_00072f80(0,iVar22 + 1);\n      local_e4 = 0xd;\n      local_d4 = 0;\n      local_dc = 0;\n      if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }\n      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);\n      local_e0 = iVar18 + 1;\n      iVar18 = FUN_000c4410();\n      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;\n      local_170 = local_dc;\n      FUN_00073150(0);\n      *(undefined1 *)(local_144[3] + 0x13) = 0;\n      *(undefined4 *)(local_144[3] + 0x1c) = 0;\n      iVar18 = local_144[0x1a];\n      iVar24 = *local_144;\n      if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }\n      iVar25 = unaff_EDI + 0xc9455;\n      if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }\n      *(int *)(iVar25 + 8) = iVar18;\n      local_174 = *(byte **)*local_158;\n      if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }\nLAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }\n    }" ({ "{") (expression_statement "iVar18 = piVar11[0xb];" (assignment_expression "iVar18 = piVar11[0xb]" (identifier "iVar18") (= "=") (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "piVar11[0xb] = iVar18 + 1;" (assignment_expression "piVar11[0xb] = iVar18 + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar22 = local_144[0x1a];" (assignment_expression "iVar22 = local_144[0x1a]" (identifier "iVar22") (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "FUN_00072f80(0,iVar22 + 1);" (call_expression "FUN_00072f80(0,iVar22 + 1)" (identifier "FUN_00072f80") (argument_list "(0,iVar22 + 1)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "local_e4 = 0xd;" (assignment_expression "local_e4 = 0xd" (identifier "local_e4") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((byte)local_130 != '\0') {\n        local_dc = iVar16;\n      }" (if "if") (parenthesized_expression "((byte)local_130 != '\0')" (( "(") (binary_expression "(byte)local_130 != '\0'" (cast_expression "(byte)local_130" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_130")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_dc = iVar16;\n      }" ({ "{") (expression_statement "local_dc = iVar16;" (assignment_expression "local_dc = iVar16" (identifier "local_dc") (= "=") (identifier "iVar16")) (; ";")) (} "}"))) (expression_statement "local_d8 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "local_d8 = (int)*(short *)((int)piVar12 + 0x2a)" (identifier "local_d8") (= "=") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "local_e0 = iVar18 + 1;" (assignment_expression "local_e0 = iVar18 + 1" (identifier "local_e0") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = FUN_000c4410();" (assignment_expression "iVar18 = FUN_000c4410()" (identifier "iVar18") (= "=") (call_expression "FUN_000c4410()" (identifier "FUN_000c4410") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))\n      goto LAB_000f366b;" (if "if") (parenthesized_expression "(((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))" (( "(") (binary_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0)" (parenthesized_expression "((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0'))" (( "(") (binary_expression "(iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')" (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" (* "*") (cast_expression "(char *)(iVar26 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x4d)" (( "(") (binary_expression "iVar26 + 0x4d" (identifier "iVar26") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar11[9] != 0)" (( "(") (binary_expression "piVar11[9] != 0" (subscript_expression "piVar11[9]" (identifier "piVar11") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000f366b;" (goto "goto") (statement_identifier "LAB_000f366b") (; ";"))) (expression_statement "local_170 = local_dc;" (assignment_expression "local_170 = local_dc" (identifier "local_170") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(local_144[3] + 0x13) = 0;" (assignment_expression "*(undefined1 *)(local_144[3] + 0x13) = 0" (pointer_expression "*(undefined1 *)(local_144[3] + 0x13)" (* "*") (cast_expression "(undefined1 *)(local_144[3] + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_144[3] + 0x13)" (( "(") (binary_expression "local_144[3] + 0x13" (subscript_expression "local_144[3]" (identifier "local_144") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_144[3] + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(local_144[3] + 0x1c) = 0" (pointer_expression "*(undefined4 *)(local_144[3] + 0x1c)" (* "*") (cast_expression "(undefined4 *)(local_144[3] + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_144[3] + 0x1c)" (( "(") (binary_expression "local_144[3] + 0x1c" (subscript_expression "local_144[3]" (identifier "local_144") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = local_144[0x1a];" (assignment_expression "iVar18 = local_144[0x1a]" (identifier "iVar18") (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "iVar24 = *local_144;" (assignment_expression "iVar24 = *local_144" (identifier "iVar24") (= "=") (pointer_expression "*local_144" (* "*") (identifier "local_144"))) (; ";")) (if_statement "if (iVar22 < 0) {\n        iVar22 = iVar18 + -1;\n      }" (if "if") (parenthesized_expression "(iVar22 < 0)" (( "(") (binary_expression "iVar22 < 0" (identifier "iVar22") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar22 = iVar18 + -1;\n      }" ({ "{") (expression_statement "iVar22 = iVar18 + -1;" (assignment_expression "iVar22 = iVar18 + -1" (identifier "iVar22") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" (identifier "iVar25") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(iVar24 + 0x4d) == '\0') {\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar24 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar24 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar24 + 0x4d)" (* "*") (cast_expression "(char *)(iVar24 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x4d)" (( "(") (binary_expression "iVar24 + 0x4d" (identifier "iVar24") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar24 = iVar22 * 3;\n        iVar25 = local_144[0x19] + iVar22 * 0x18;\n      }" ({ "{") (expression_statement "iVar24 = iVar22 * 3;" (assignment_expression "iVar24 = iVar22 * 3" (identifier "iVar24") (= "=") (binary_expression "iVar22 * 3" (identifier "iVar22") (* "*") (number_literal "3"))) (; ";")) (expression_statement "iVar25 = local_144[0x19] + iVar22 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar22 * 0x18" (identifier "iVar25") (= "=") (binary_expression "local_144[0x19] + iVar22 * 0x18" (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar22 * 0x18" (identifier "iVar22") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar25 + 8) = iVar18;" (assignment_expression "*(int *)(iVar25 + 8) = iVar18" (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "local_174 = *(byte **)*local_158;" (assignment_expression "local_174 = *(byte **)*local_158" (identifier "local_174") (= "=") (pointer_expression "*(byte **)*local_158" (* "*") (cast_expression "(byte **)*local_158" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_158" (* "*") (identifier "local_158"))))) (; ";")) (if_statement "if (iVar14 == 0) {\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }\n      else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar42 = CONCAT44(iVar18,piVar11[2]);\n        if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }\n        iVar18 = (int)((ulonglong)uVar42 >> 0x20);\n        piVar37 = (int *)uVar42;\n        piVar34 = (int *)0x0;\n        if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }\n        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        bVar10 = false;\n        if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }\n      }" ({ "{") (expression_statement "uVar42 = CONCAT44(iVar18,piVar11[2]);" (assignment_expression "uVar42 = CONCAT44(iVar18,piVar11[2])" (identifier "uVar42") (= "=") (call_expression "CONCAT44(iVar18,piVar11[2])" (identifier "CONCAT44") (argument_list "(iVar18,piVar11[2])" (( "(") (identifier "iVar18") (, ",") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (if_statement "if (piVar11[2] == 0) {\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" (if "if") (parenthesized_expression "(piVar11[2] == 0)" (( "(") (binary_expression "piVar11[2] == 0" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar42 = FUN_00073350();\n          iVar24 = extraout_ECX_06;\n        }" ({ "{") (expression_statement "uVar42 = FUN_00073350();" (assignment_expression "uVar42 = FUN_00073350()" (identifier "uVar42") (= "=") (call_expression "FUN_00073350()" (identifier "FUN_00073350") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar24 = extraout_ECX_06;" (assignment_expression "iVar24 = extraout_ECX_06" (identifier "iVar24") (= "=") (identifier "extraout_ECX_06")) (; ";")) (} "}"))) (expression_statement "iVar18 = (int)((ulonglong)uVar42 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar42 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)uVar42 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar42 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar42 >> 0x20" (cast_expression "(ulonglong)uVar42" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar42")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar37 = (int *)uVar42;" (assignment_expression "piVar37 = (int *)uVar42" (identifier "piVar37") (= "=") (cast_expression "(int *)uVar42" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar42"))) (; ";")) (expression_statement "piVar34 = (int *)0x0;" (assignment_expression "piVar34 = (int *)0x0" (identifier "piVar34") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar12[0xe] != 0) {\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" (if "if") (parenthesized_expression "(piVar12[0xe] != 0)" (( "(") (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar18 = *piVar11;\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n        }" ({ "{") (expression_statement "iVar18 = *piVar11;" (assignment_expression "iVar18 = *piVar11" (identifier "iVar18") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" (for "for") (( "(") (assignment_expression "piVar34 = (int *)piVar12[0x10]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar12[0x10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[0x10]" (identifier "piVar12") ([ "[") (number_literal "0x10") (] "]")))) (; ";") (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar18 != *piVar34))" (( "(") (binary_expression "piVar34 != (int *)0x0 && (iVar18 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" (identifier "piVar34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(iVar18 != *piVar34)" (( "(") (binary_expression "iVar18 != *piVar34" (identifier "iVar18") (!= "!=") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) () ")"))) () ")")) (; ";") (assignment_expression "piVar34 = (int *)piVar34[6]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar34[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar34[6]" (identifier "piVar34") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n          }" ({ "{") (} "}"))) (} "}"))) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" (identifier "uVar35") (= "=") (call_expression "CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0)" (( "(") (call_expression "(int3)((uint)iVar18 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" (identifier "uVar27") (= "=") (binary_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar24 >> 8),0 < (int)local_174)" (( "(") (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar24 >> 8)" (( "(") (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar24")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "0 < (int)local_174" (number_literal "0") (< "<") (cast_expression "(int)local_174" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_174"))) () ")"))) (& "&") (identifier "uVar35"))) (; ";")) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" (identifier "local_16c") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "SUB41(uVar27,0)" (identifier "SUB41") (argument_list "(uVar27,0)" (( "(") (identifier "uVar27") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (identifier "uVar35") (= "=") (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" (identifier "CONCAT31") (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" (( "(") (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar27 >> 8)" (( "(") (binary_expression "uVar27 >> 8" (identifier "uVar27") (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "local_174 != (byte *)0x0" (identifier "local_174") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) (& "&") (identifier "uVar35"))) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (if_statement "if (1 < piVar37[0x1a]) {\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" (if "if") (parenthesized_expression "(1 < piVar37[0x1a])" (( "(") (binary_expression "1 < piVar37[0x1a]" (number_literal "1") (< "<") (subscript_expression "piVar37[0x1a]" (identifier "piVar37") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n          iVar18 = 1;\n          do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);\n        }" ({ "{") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          } while (piVar37[0x1a] != iVar18);" (do "do") (compound_statement "{\n            pcVar32 = (char *)(unaff_EDI + 0xc9455);\n            if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }\n            if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;\n            iVar18 = iVar18 + 1;\n          }" ({ "{") (expression_statement "pcVar32 = (char *)(unaff_EDI + 0xc9455);" (assignment_expression "pcVar32 = (char *)(unaff_EDI + 0xc9455)" (identifier "pcVar32") (= "=") (cast_expression "(char *)(unaff_EDI + 0xc9455)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xc9455)" (( "(") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455")) () ")")))) (; ";")) (if_statement "if (*(char *)(*piVar37 + 0x4d) == '\0') {\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" (if "if") (parenthesized_expression "(*(char *)(*piVar37 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*piVar37 + 0x4d) == '\0'" (pointer_expression "*(char *)(*piVar37 + 0x4d)" (* "*") (cast_expression "(char *)(*piVar37 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar37 + 0x4d)" (( "(") (binary_expression "*piVar37 + 0x4d" (pointer_expression "*piVar37" (* "*") (identifier "piVar37")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);\n            }" ({ "{") (expression_statement "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);" (assignment_expression "pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18)" (identifier "pcVar32") (= "=") (cast_expression "(char *)(piVar37[0x19] + iVar18 * 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar37[0x19] + iVar18 * 0x18)" (( "(") (binary_expression "piVar37[0x19] + iVar18 * 0x18" (subscript_expression "piVar37[0x19]" (identifier "piVar37") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar18 * 0x18" (identifier "iVar18") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (*pcVar32 == 'm') {\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }\n            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" (if "if") (parenthesized_expression "(*pcVar32 == 'm')" (( "(") (binary_expression "*pcVar32 == 'm'" (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) (== "==") (char_literal "'m'" (' "'") (character "m") (' "'"))) () ")")) (compound_statement "{\n              if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }\n            }" ({ "{") (if_statement "if (local_134 == *(int *)(pcVar32 + 0xc)) {\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" (if "if") (parenthesized_expression "(local_134 == *(int *)(pcVar32 + 0xc))" (( "(") (binary_expression "local_134 == *(int *)(pcVar32 + 0xc)" (identifier "local_134") (== "==") (pointer_expression "*(int *)(pcVar32 + 0xc)" (* "*") (cast_expression "(int *)(pcVar32 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0xc)" (( "(") (binary_expression "pcVar32 + 0xc" (identifier "pcVar32") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;\n                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }\n              }" ({ "{") (if_statement "if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;" (if "if") (parenthesized_expression "(*(int *)(pcVar32 + 8) == piVar12[7])" (( "(") (binary_expression "*(int *)(pcVar32 + 8) == piVar12[7]" (pointer_expression "*(int *)(pcVar32 + 8)" (* "*") (cast_expression "(int *)(pcVar32 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 8)" (( "(") (binary_expression "pcVar32 + 8" (identifier "pcVar32") (+ "+") (number_literal "8")) () ")")))) (== "==") (subscript_expression "piVar12[7]" (identifier "piVar12") ([ "[") (number_literal "7") (] "]"))) () ")")) (goto_statement "goto LAB_000f3b16;" (goto "goto") (statement_identifier "LAB_000f3b16") (; ";"))) (for_statement "for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" (for "for") (( "(") (assignment_expression "iVar22 = piVar12[2]" (identifier "iVar22") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar22 = *(int *)(iVar22 + 0x14)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar22 + 0x14)" (* "*") (cast_expression "(int *)(iVar22 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x14)" (( "(") (binary_expression "iVar22 + 0x14" (identifier "iVar22") (+ "+") (number_literal "0x14")) () ")"))))) () ")") (compound_statement "{\n                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;\n                }" ({ "{") (if_statement "if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;" (if "if") (parenthesized_expression "(*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c))" (( "(") (binary_expression "*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)" (pointer_expression "*(int *)(pcVar32 + 8)" (* "*") (cast_expression "(int *)(pcVar32 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 8)" (( "(") (binary_expression "pcVar32 + 8" (identifier "pcVar32") (+ "+") (number_literal "8")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar22 + 0x2c)" (* "*") (cast_expression "(int *)(iVar22 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2c)" (( "(") (binary_expression "iVar22 + 0x2c" (identifier "iVar22") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (goto_statement "goto LAB_000f3b16;" (goto "goto") (statement_identifier "LAB_000f3b16") (; ";"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" (else "else") (if_statement "if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))\n            goto LAB_000f3b16;" (if "if") (parenthesized_expression "((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))" (( "(") (binary_expression "(*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34)" (parenthesized_expression "(*pcVar32 == -0x5d)" (( "(") (binary_expression "*pcVar32 == -0x5d" (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) (== "==") (number_literal "-0x5d")) () ")")) (&& "&&") (parenthesized_expression "(*(int **)(pcVar32 + 0x10) == piVar34)" (( "(") (binary_expression "*(int **)(pcVar32 + 0x10) == piVar34" (pointer_expression "*(int **)(pcVar32 + 0x10)" (* "*") (cast_expression "(int **)(pcVar32 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x10)" (( "(") (binary_expression "pcVar32 + 0x10" (identifier "pcVar32") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "piVar34")) () ")"))) () ")")) (goto_statement "goto LAB_000f3b16;" (goto "goto") (statement_identifier "LAB_000f3b16") (; ";"))))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar37[0x1a] != iVar18)" (( "(") (binary_expression "piVar37[0x1a] != iVar18" (subscript_expression "piVar37[0x1a]" (identifier "piVar37") ([ "[") (number_literal "0x1a") (] "]")) (!= "!=") (identifier "iVar18")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" (else "else") (compound_statement "{\nLAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;\n        cVar2 = *(char *)((int)piVar11 + 0x13);\n        if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }\n        FUN_00073150(local_174);\n        iVar19 = FUN_00073150(0);\n        FUN_00072f80(local_174,iVar18);\n        FUN_00073150(iVar22);\n        FUN_00072f80(iVar18,iVar22);\n        FUN_00073150(iVar19);\n        iVar24 = local_144[0x1a];\n        iVar25 = *local_144;\n        if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }\n        iVar20 = unaff_EDI + 0xc9455;\n        if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }\n        *(int *)(iVar20 + 8) = iVar24;\n        if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }\n        bVar10 = true;\n        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);\n        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;\n        local_16c._0_1_ = SUB41(uVar27,0);\n        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;\n        if (iVar22 != 0) {\n          FUN_00045e10();\n        }\n      }" ({ "{") (labeled_statement "LAB_000f3b16:\n        piVar11[10] = piVar11[10] + 1;" (statement_identifier "LAB_000f3b16") (: ":") (expression_statement "piVar11[10] = piVar11[10] + 1;" (assignment_expression "piVar11[10] = piVar11[10] + 1" (subscript_expression "piVar11[10]" (identifier "piVar11") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "piVar11[10] + 1" (subscript_expression "piVar11[10]" (identifier "piVar11") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "cVar2 = *(char *)((int)piVar11 + 0x13);" (assignment_expression "cVar2 = *(char *)((int)piVar11 + 0x13)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")"))))) (; ";")) (if_statement "if (cVar2 == '\0') {\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }\n        else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar18 = piVar11[0xb] + 1;\n          iVar22 = iVar18;\nLAB_000f4ecb:\n          iVar22 = iVar22 + 1;\n          piVar11[0xb] = iVar22;\n        }" ({ "{") (expression_statement "iVar18 = piVar11[0xb] + 1;" (assignment_expression "iVar18 = piVar11[0xb] + 1" (identifier "iVar18") (= "=") (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar22 = iVar18;" (assignment_expression "iVar22 = iVar18" (identifier "iVar22") (= "=") (identifier "iVar18")) (; ";")) (labeled_statement "LAB_000f4ecb:\n          iVar22 = iVar22 + 1;" (statement_identifier "LAB_000f4ecb") (: ":") (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar22")) (; ";")) (} "}")) (else_clause "else {\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" (else "else") (compound_statement "{\n          bVar1 = cVar2 - 1;\n          *(byte *)((int)piVar11 + 0x13) = bVar1;\n          iVar18 = piVar11[bVar1 + 0x24];\n          if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }\n          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;\n          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];\n        }" ({ "{") (expression_statement "bVar1 = cVar2 - 1;" (assignment_expression "bVar1 = cVar2 - 1" (identifier "bVar1") (= "=") (binary_expression "cVar2 - 1" (identifier "cVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)((int)piVar11 + 0x13) = bVar1;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = bVar1" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "iVar18 = piVar11[bVar1 + 0x24];" (assignment_expression "iVar18 = piVar11[bVar1 + 0x24]" (identifier "iVar18") (= "=") (subscript_expression "piVar11[bVar1 + 0x24]" (identifier "piVar11") ([ "[") (binary_expression "bVar1 + 0x24" (identifier "bVar1") (+ "+") (number_literal "0x24")) (] "]"))) (; ";")) (if_statement "if (bVar1 == 0) {\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar22 = piVar11[0xb];\n            goto LAB_000f4ecb;\n          }" ({ "{") (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" (identifier "iVar22") (= "=") (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (goto_statement "goto LAB_000f4ecb;" (goto "goto") (statement_identifier "LAB_000f4ecb") (; ";")) (} "}"))) (expression_statement "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;" (assignment_expression "*(byte *)((int)piVar11 + 0x13) = cVar2 - 2U" (pointer_expression "*(byte *)((int)piVar11 + 0x13)" (* "*") (cast_expression "(byte *)((int)piVar11 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x13)" (( "(") (binary_expression "(int)piVar11 + 0x13" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (binary_expression "cVar2 - 2U" (identifier "cVar2") (- "-") (number_literal "2U"))) (; ";")) (expression_statement "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];" (assignment_expression "iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24]" (identifier "iVar22") (= "=") (subscript_expression "piVar11[(byte)(cVar2 - 2U) + 0x24]" (identifier "piVar11") ([ "[") (binary_expression "(byte)(cVar2 - 2U) + 0x24" (call_expression "(byte)(cVar2 - 2U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 2U)" (( "(") (binary_expression "cVar2 - 2U" (identifier "cVar2") (- "-") (number_literal "2U")) () ")"))) (+ "+") (number_literal "0x24")) (] "]"))) (; ";")) (} "}")))) (expression_statement "FUN_00073150(local_174);" (call_expression "FUN_00073150(local_174)" (identifier "FUN_00073150") (argument_list "(local_174)" (( "(") (identifier "local_174") () ")"))) (; ";")) (expression_statement "iVar19 = FUN_00073150(0);" (assignment_expression "iVar19 = FUN_00073150(0)" (identifier "iVar19") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00072f80(local_174,iVar18);" (call_expression "FUN_00072f80(local_174,iVar18)" (identifier "FUN_00072f80") (argument_list "(local_174,iVar18)" (( "(") (identifier "local_174") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" (identifier "FUN_00073150") (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "FUN_00072f80(iVar18,iVar22);" (call_expression "FUN_00072f80(iVar18,iVar22)" (identifier "FUN_00072f80") (argument_list "(iVar18,iVar22)" (( "(") (identifier "iVar18") (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "FUN_00073150(iVar19);" (call_expression "FUN_00073150(iVar19)" (identifier "FUN_00073150") (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")"))) (; ";")) (expression_statement "iVar24 = local_144[0x1a];" (assignment_expression "iVar24 = local_144[0x1a]" (identifier "iVar24") (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "iVar25 = *local_144;" (assignment_expression "iVar25 = *local_144" (identifier "iVar25") (= "=") (pointer_expression "*local_144" (* "*") (identifier "local_144"))) (; ";")) (if_statement "if (iVar19 < 0) {\n          iVar19 = iVar24 + -1;\n        }" (if "if") (parenthesized_expression "(iVar19 < 0)" (( "(") (binary_expression "iVar19 < 0" (identifier "iVar19") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar19 = iVar24 + -1;\n        }" ({ "{") (expression_statement "iVar19 = iVar24 + -1;" (assignment_expression "iVar19 = iVar24 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar24 + -1" (identifier "iVar24") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar20 = unaff_EDI + 0xc9455;" (assignment_expression "iVar20 = unaff_EDI + 0xc9455" (identifier "iVar20") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(iVar25 + 0x4d) == '\0') {\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar25 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar25 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar25 + 0x4d)" (* "*") (cast_expression "(char *)(iVar25 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x4d)" (( "(") (binary_expression "iVar25 + 0x4d" (identifier "iVar25") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar25 = iVar19 * 3;\n          iVar20 = local_144[0x19] + iVar19 * 0x18;\n        }" ({ "{") (expression_statement "iVar25 = iVar19 * 3;" (assignment_expression "iVar25 = iVar19 * 3" (identifier "iVar25") (= "=") (binary_expression "iVar19 * 3" (identifier "iVar19") (* "*") (number_literal "3"))) (; ";")) (expression_statement "iVar20 = local_144[0x19] + iVar19 * 0x18;" (assignment_expression "iVar20 = local_144[0x19] + iVar19 * 0x18" (identifier "iVar20") (= "=") (binary_expression "local_144[0x19] + iVar19 * 0x18" (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar19 * 0x18" (identifier "iVar19") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar20 + 8) = iVar24;" (assignment_expression "*(int *)(iVar20 + 8) = iVar24" (pointer_expression "*(int *)(iVar20 + 8)" (* "*") (cast_expression "(int *)(iVar20 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (if_statement "if (iVar18 != 0) {\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00045e10();\n          iVar25 = extraout_ECX_00;\n          iVar24 = extraout_EDX;\n        }" ({ "{") (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" (identifier "FUN_00045e10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar25 = extraout_ECX_00;" (assignment_expression "iVar25 = extraout_ECX_00" (identifier "iVar25") (= "=") (identifier "extraout_ECX_00")) (; ";")) (expression_statement "iVar24 = extraout_EDX;" (assignment_expression "iVar24 = extraout_EDX" (identifier "iVar24") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}"))) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" (identifier "bVar10") (= "=") (true "true")) (; ";")) (expression_statement "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);" (assignment_expression "uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" (identifier "uVar35") (= "=") (call_expression "CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0)" (( "(") (call_expression "(int3)((uint)iVar24 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar24 >> 8)" (( "(") (binary_expression "(uint)iVar24 >> 8" (cast_expression "(uint)iVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar24")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (expression_statement "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;" (assignment_expression "uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" (identifier "uVar27") (= "=") (binary_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35" (call_expression "CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174)" (identifier "CONCAT31") (argument_list "((int3)((uint)iVar25 >> 8),0 < (int)local_174)" (( "(") (call_expression "(int3)((uint)iVar25 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)iVar25 >> 8)" (( "(") (binary_expression "(uint)iVar25 >> 8" (cast_expression "(uint)iVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar25")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "0 < (int)local_174" (number_literal "0") (< "<") (cast_expression "(int)local_174" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_174"))) () ")"))) (& "&") (identifier "uVar35"))) (; ";")) (expression_statement "local_16c._0_1_ = SUB41(uVar27,0);" (assignment_expression "local_16c._0_1_ = SUB41(uVar27,0)" (field_expression "local_16c._0_1_" (identifier "local_16c") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "SUB41(uVar27,0)" (identifier "SUB41") (argument_list "(uVar27,0)" (( "(") (identifier "uVar27") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;" (assignment_expression "uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (identifier "uVar35") (= "=") (binary_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35" (call_expression "CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" (identifier "CONCAT31") (argument_list "((int3)(uVar27 >> 8),local_174 != (byte *)0x0)" (( "(") (call_expression "(int3)(uVar27 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar27 >> 8)" (( "(") (binary_expression "uVar27 >> 8" (identifier "uVar27") (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "local_174 != (byte *)0x0" (identifier "local_174") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) (& "&") (identifier "uVar35"))) (; ";")) (if_statement "if (iVar22 != 0) {\n          FUN_00045e10();\n        }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00045e10();\n        }" ({ "{") (expression_statement "FUN_00045e10();" (call_expression "FUN_00045e10()" (identifier "FUN_00045e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000f3c52:\n      if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" (statement_identifier "LAB_000f3c52") (: ":") (if_statement "if (local_16c._0_1_ != false) {\n        local_140 = (uint)(short)piVar12[10];\n      }" (if "if") (parenthesized_expression "(local_16c._0_1_ != false)" (( "(") (binary_expression "local_16c._0_1_ != false" (field_expression "local_16c._0_1_" (identifier "local_16c") (. ".") (field_identifier "_0_1_")) (!= "!=") (false "false")) () ")")) (compound_statement "{\n        local_140 = (uint)(short)piVar12[10];\n      }" ({ "{") (expression_statement "local_140 = (uint)(short)piVar12[10];" (assignment_expression "local_140 = (uint)(short)piVar12[10]" (identifier "local_140") (= "=") (cast_expression "(uint)(short)piVar12[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]"))))) (; ";")) (} "}")))) (} "}")))) (expression_statement "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a)" (identifier "piVar34") (= "=") (cast_expression "(int *)(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))))) (; ";")) (if_statement "if ((int)piVar34 < 1) {\n      iVar18 = 0;\n    }\n    else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" (if "if") (parenthesized_expression "((int)piVar34 < 1)" (( "(") (binary_expression "(int)piVar34 < 1" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar18 = 0;\n    }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" (else "else") (compound_statement "{\n      iVar18 = 0;\n      pbVar21 = (byte *)(piVar12[1] + 0xf);\n      pbVar29 = pbVar21 + (int)piVar34 * 0x10;\n      do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);\n    }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar21 = (byte *)(piVar12[1] + 0xf);" (assignment_expression "pbVar21 = (byte *)(piVar12[1] + 0xf)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(piVar12[1] + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 0xf)" (( "(") (binary_expression "piVar12[1] + 0xf" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xf")) () ")")))) (; ";")) (expression_statement "pbVar29 = pbVar21 + (int)piVar34 * 0x10;" (assignment_expression "pbVar29 = pbVar21 + (int)piVar34 * 0x10" (identifier "pbVar29") (= "=") (binary_expression "pbVar21 + (int)piVar34 * 0x10" (identifier "pbVar21") (+ "+") (binary_expression "(int)piVar34 * 0x10" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (* "*") (number_literal "0x10")))) (; ";")) (do_statement "do {\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      } while (pbVar29 != pbVar21);" (do "do") (compound_statement "{\n        bVar1 = *pbVar21;\n        pbVar21 = pbVar21 + 0x10;\n        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);\n      }" ({ "{") (expression_statement "bVar1 = *pbVar21;" (assignment_expression "bVar1 = *pbVar21" (identifier "bVar1") (= "=") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + 0x10;" (assignment_expression "pbVar21 = pbVar21 + 0x10" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 0x10" (identifier "pbVar21") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);" (assignment_expression "iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" (identifier "iVar18") (= "=") (binary_expression "iVar18 + ((int)(uint)bVar1 >> 1 & 1U)" (identifier "iVar18") (+ "+") (parenthesized_expression "((int)(uint)bVar1 >> 1 & 1U)" (( "(") (binary_expression "(int)(uint)bVar1 >> 1 & 1U" (binary_expression "(int)(uint)bVar1 >> 1" (cast_expression "(int)(uint)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (>> ">>") (number_literal "1")) (& "&") (number_literal "1U")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar29 != pbVar21)" (( "(") (binary_expression "pbVar29 != pbVar21" (identifier "pbVar29") (!= "!=") (identifier "pbVar21")) () ")")) (; ";")) (} "}")))) (if_statement "if ((char)uVar35 == '\0') {\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" (if "if") (parenthesized_expression "((char)uVar35 == '\0')" (( "(") (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar35")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;\n      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" ({ "{") (if_statement "if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;" (if "if") (parenthesized_expression "((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174))" (( "(") (binary_expression "(param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)" (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((byte *)param_1[1] == local_174)" (( "(") (binary_expression "(byte *)param_1[1] == local_174" (cast_expression "(byte *)param_1[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "local_174")) () ")"))) () ")")) (goto_statement "goto LAB_000f3caf;" (goto "goto") (statement_identifier "LAB_000f3caf") (; ";"))) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" (identifier "FUN_000886b0") (argument_list "(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1])" (( "(") (identifier "piVar11") (, ",") (binary_expression "unaff_EDI + 0x6a7b3" (identifier "unaff_EDI") (+ "+") (number_literal "0x6a7b3")) (, ",") (identifier "local_174") (, ",") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (goto_statement "goto LAB_000f3673;" (goto "goto") (statement_identifier "LAB_000f3673") (; ";")) (} "}"))) (expression_statement "piVar34 = (int *)((int)piVar34 - iVar18);" (assignment_expression "piVar34 = (int *)((int)piVar34 - iVar18)" (identifier "piVar34") (= "=") (cast_expression "(int *)((int)piVar34 - iVar18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar34 - iVar18)" (( "(") (binary_expression "(int)piVar34 - iVar18" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (- "-") (identifier "iVar18")) () ")")))) (; ";")) (if_statement "if ((byte *)piVar34 != local_174) {\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" (if "if") (parenthesized_expression "((byte *)piVar34 != local_174)" (( "(") (binary_expression "(byte *)piVar34 != local_174" (cast_expression "(byte *)piVar34" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar34")) (!= "!=") (identifier "local_174")) () ")")) (compound_statement "{\n      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);\n      local_17c = (int *)0x0;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      goto LAB_000f3673;\n    }" ({ "{") (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" (identifier "FUN_000886b0") (argument_list "(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174)" (( "(") (identifier "piVar11") (, ",") (binary_expression "unaff_EDI + 0x77d19" (identifier "unaff_EDI") (+ "+") (number_literal "0x77d19")) (, ",") (identifier "iVar23") (, ",") (number_literal "0") (, ",") (identifier "piVar34") (, ",") (identifier "local_174") () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (goto_statement "goto LAB_000f3673;" (goto "goto") (statement_identifier "LAB_000f3673") (; ";")) (} "}"))) (labeled_statement "LAB_000f3caf:\n    local_16c = 0;" (statement_identifier "LAB_000f3caf") (: ":") (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)) {\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" (if "if") (parenthesized_expression "((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0))" (( "(") (binary_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&\n       (piVar11[0x1e] == 0)" (parenthesized_expression "(((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0'))" (( "(") (binary_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')" (parenthesized_expression "((*(byte *)(iVar26 + 0x1c) & 0x80) != 0)" (( "(") (binary_expression "(*(byte *)(iVar26 + 0x1c) & 0x80) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1c) & 0x80)" (( "(") (binary_expression "*(byte *)(iVar26 + 0x1c) & 0x80" (pointer_expression "*(byte *)(iVar26 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar26 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x1c)" (( "(") (binary_expression "iVar26 + 0x1c" (identifier "iVar26") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x12)" (( "(") (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar11[0x1e] == 0)" (( "(") (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" (identifier "piVar11") ([ "[") (number_literal "0x1e") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      local_16c = piVar11[0xb] + 1;\n      piVar11[0xb] = local_16c;\n      FUN_00073150(local_16c);\n    }" ({ "{") (expression_statement "local_16c = piVar11[0xb] + 1;" (assignment_expression "local_16c = piVar11[0xb] + 1" (identifier "local_16c") (= "=") (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11[0xb] = local_16c;" (assignment_expression "piVar11[0xb] = local_16c" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_16c")) (; ";")) (expression_statement "FUN_00073150(local_16c);" (call_expression "FUN_00073150(local_16c)" (identifier "FUN_00073150") (argument_list "(local_16c)" (( "(") (identifier "local_16c") () ")"))) (; ";")) (} "}"))) (expression_statement "local_168 = (int *)0x0;" (assignment_expression "local_168 = (int *)0x0" (identifier "local_168") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar13 == 0) {\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar37 = (int *)0x0;\n      if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }\n      if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;\n      iVar18 = piVar12[2];\n      piVar34 = piVar37;\n      if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }\n    }" ({ "{") (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" (identifier "piVar37") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar12[0xe] == 0) {\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" (if "if") (parenthesized_expression "(piVar12[0xe] == 0)" (( "(") (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);\n      }" ({ "{") (expression_statement "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);" (assignment_expression "piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" (identifier "piVar37") (= "=") (cast_expression "(int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec)" (identifier "FUN_00091910") (argument_list "(0,0xffffffff,0,&local_f0,&local_ec)" (( "(") (number_literal "0") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (pointer_expression "&local_ec" (& "&") (identifier "local_ec")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;" (if "if") (parenthesized_expression "((*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0))" (( "(") (binary_expression "(*(char *)(iVar26 + 0x4d) != '\0') ||\n         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" (parenthesized_expression "(*(char *)(iVar26 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(iVar26 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar26 + 0x4d)" (* "*") (cast_expression "(char *)(iVar26 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x4d)" (( "(") (binary_expression "iVar26 + 0x4d" (identifier "iVar26") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)" (( "(") (comma_expression "local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0" (assignment_expression "local_168 = (int *)FUN_00055c10()" (identifier "local_168") (= "=") (cast_expression "(int *)FUN_00055c10()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00055c10()" (identifier "FUN_00055c10") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "local_168 == (int *)0x0" (identifier "local_168") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_000f366b;" (goto "goto") (statement_identifier "LAB_000f366b") (; ";"))) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" (identifier "iVar18") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" (identifier "piVar34") (= "=") (identifier "piVar37")) (; ";")) (if_statement "if (0 < (int)piVar37) {\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" (if "if") (parenthesized_expression "(0 < (int)piVar37)" (( "(") (binary_expression "0 < (int)piVar37" (number_literal "0") (< "<") (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37"))) () ")")) (compound_statement "{\n        iVar22 = piVar11[0xb];\n        piVar30 = local_168;\n        do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);\n      }" ({ "{") (expression_statement "iVar22 = piVar11[0xb];" (assignment_expression "iVar22 = piVar11[0xb]" (identifier "iVar22") (= "=") (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "piVar30 = local_168;" (assignment_expression "piVar30 = local_168" (identifier "piVar30") (= "=") (identifier "local_168")) (; ";")) (do_statement "do {\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        } while (local_168 + (int)piVar37 != piVar31);" (do "do") (compound_statement "{\n          iVar22 = iVar22 + 1;\n          piVar31 = piVar30 + 1;\n          piVar11[0xb] = iVar22;\n          *piVar30 = iVar22;\n          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);\n          piVar11[0xb] = iVar22;\n          iVar18 = *(int *)(iVar18 + 0x14);\n          piVar30 = piVar31;\n          piVar34 = piVar11;\n        }" ({ "{") (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar31 = piVar30 + 1;" (assignment_expression "piVar31 = piVar30 + 1" (identifier "piVar31") (= "=") (binary_expression "piVar30 + 1" (identifier "piVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar22")) (; ";")) (expression_statement "*piVar30 = iVar22;" (assignment_expression "*piVar30 = iVar22" (pointer_expression "*piVar30" (* "*") (identifier "piVar30")) (= "=") (identifier "iVar22")) (; ";")) (expression_statement "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);" (assignment_expression "iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" (identifier "iVar22") (= "=") (binary_expression "iVar22 + (uint)*(ushort *)(iVar18 + 0x34)" (identifier "iVar22") (+ "+") (binary_expression "(uint)*(ushort *)(iVar18 + 0x34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar18 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x34)" (( "(") (binary_expression "iVar18 + 0x34" (identifier "iVar18") (+ "+") (number_literal "0x34")) () ")")))))) (; ";")) (expression_statement "piVar11[0xb] = iVar22;" (assignment_expression "piVar11[0xb] = iVar22" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar22")) (; ";")) (expression_statement "iVar18 = *(int *)(iVar18 + 0x14);" (assignment_expression "iVar18 = *(int *)(iVar18 + 0x14)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar18 + 0x14)" (* "*") (cast_expression "(int *)(iVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "piVar30 = piVar31;" (assignment_expression "piVar30 = piVar31" (identifier "piVar30") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" (identifier "piVar34") (= "=") (identifier "piVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_168 + (int)piVar37 != piVar31)" (( "(") (binary_expression "local_168 + (int)piVar37 != piVar31" (binary_expression "local_168 + (int)piVar37" (identifier "local_168") (+ "+") (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37"))) (!= "!=") (identifier "piVar31")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (if_statement "if (param_3 == (int *)0x0) {\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }\n      iVar18 = piVar11[0xe] + -1;\n      piVar11[0xe] = iVar18;\n      if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }\n      if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }\n      if (local_16c != 0) {\n        FUN_00073150(1);\n      }\n      if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }\n      FUN_0006dec0();\n      if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }\n      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }\n      local_17c = local_168;\n      if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }\n      goto LAB_000f3673;\n    }" ({ "{") (labeled_statement "LAB_000f3d98:\n      if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" (statement_identifier "LAB_000f3d98") (: ":") (if_statement "if (bVar10) {\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }\n      else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = local_144[0x1a];\n      }" ({ "{") (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" (identifier "iVar23") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_160 = local_144[0x1a];" (assignment_expression "local_160 = local_144[0x1a]" (identifier "local_160") (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (} "}")) (else_clause "else if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" (else "else") (if_statement "if (local_158 == (int *)0x0) {\n        local_160 = 0;\n        iVar23 = 0;\n      }\n      else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" (if "if") (parenthesized_expression "(local_158 == (int *)0x0)" (( "(") (binary_expression "local_158 == (int *)0x0" (identifier "local_158") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_160 = 0;\n        iVar23 = 0;\n      }" ({ "{") (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" (else "else") (compound_statement "{\n        iVar23 = FUN_00073150(0);\n        local_160 = iVar23;\n      }" ({ "{") (expression_statement "iVar23 = FUN_00073150(0);" (assignment_expression "iVar23 = FUN_00073150(0)" (identifier "iVar23") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_160 = iVar23;" (assignment_expression "local_160 = iVar23" (identifier "local_160") (= "=") (identifier "iVar23")) (; ";")) (} "}"))))))) (expression_statement "iVar18 = piVar11[0xe] + -1;" (assignment_expression "iVar18 = piVar11[0xe] + -1" (identifier "iVar18") (= "=") (binary_expression "piVar11[0xe] + -1" (subscript_expression "piVar11[0xe]" (identifier "piVar11") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar11[0xe] = iVar18;" (assignment_expression "piVar11[0xe] = iVar18" (subscript_expression "piVar11[0xe]" (identifier "piVar11") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar18")) (; ";")) (if_statement "if ((local_e8[0] & 1) != 0) {\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" (if "if") (parenthesized_expression "((local_e8[0] & 1) != 0)" (( "(") (binary_expression "(local_e8[0] & 1) != 0" (parenthesized_expression "(local_e8[0] & 1)" (( "(") (binary_expression "local_e8[0] & 1" (subscript_expression "local_e8[0]" (identifier "local_e8") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar22 = FUN_00045e40();\n        if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }\n        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }\n        if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }\n        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);\n        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;\n        piVar34 = piVar12;\n        if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }\n      }" ({ "{") (expression_statement "iVar22 = FUN_00045e40();" (assignment_expression "iVar22 = FUN_00045e40()" (identifier "iVar22") (= "=") (call_expression "FUN_00045e40()" (identifier "FUN_00045e40") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)local_140 < 0) {\n          FUN_00073150(iVar22);\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" (if "if") (parenthesized_expression "((int)local_140 < 0)" (( "(") (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_140")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00073150(iVar22);\n        }" ({ "{") (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" (identifier "FUN_00073150") (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" (else "else") (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }\n          iVar24 = FUN_00073150(0);\n          FUN_00073150(iVar22);\n          if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }\n          iVar25 = unaff_EDI + 0xc9455;\n          if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }\n          *(int *)(iVar25 + 8) = local_144[0x1a];\n          FUN_00073150(0);\n        }" ({ "{") (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }\n          else {\n            FUN_000cb850();\n          }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n            FUN_00072f80(local_140,iVar22,piVar34,piVar34);\n          }" ({ "{") (expression_statement "FUN_00072f80(local_140,iVar22,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,iVar22,piVar34,piVar34)" (identifier "FUN_00072f80") (argument_list "(local_140,iVar22,piVar34,piVar34)" (( "(") (identifier "local_140") (, ",") (identifier "iVar22") (, ",") (identifier "piVar34") (, ",") (identifier "piVar34") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_000cb850();\n          }" (else "else") (compound_statement "{\n            FUN_000cb850();\n          }" ({ "{") (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar24 = FUN_00073150(0);" (assignment_expression "iVar24 = FUN_00073150(0)" (identifier "iVar24") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00073150(iVar22);" (call_expression "FUN_00073150(iVar22)" (identifier "FUN_00073150") (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (if_statement "if (iVar24 < 0) {\n            iVar24 = local_144[0x1a] + -1;\n          }" (if "if") (parenthesized_expression "(iVar24 < 0)" (( "(") (binary_expression "iVar24 < 0" (identifier "iVar24") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar24 = local_144[0x1a] + -1;\n          }" ({ "{") (expression_statement "iVar24 = local_144[0x1a] + -1;" (assignment_expression "iVar24 = local_144[0x1a] + -1" (identifier "iVar24") (= "=") (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar25 = unaff_EDI + 0xc9455;" (assignment_expression "iVar25 = unaff_EDI + 0xc9455" (identifier "iVar25") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" (if "if") (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" (* "*") (cast_expression "(char *)(*local_144 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_144 + 0x4d)" (( "(") (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            iVar25 = local_144[0x19] + iVar24 * 0x18;\n          }" ({ "{") (expression_statement "iVar25 = local_144[0x19] + iVar24 * 0x18;" (assignment_expression "iVar25 = local_144[0x19] + iVar24 * 0x18" (identifier "iVar25") (= "=") (binary_expression "local_144[0x19] + iVar24 * 0x18" (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar24 * 0x18" (identifier "iVar24") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar25 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar25 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" (identifier "iVar24") (= "=") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" (if "if") (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" (( "(") (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" (number_literal "0") (< "<") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (compound_statement "{\n          iVar25 = 0;\n          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);\n          iVar19 = 0;\n          do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);\n        }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);" (assignment_expression "bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" (identifier "bVar39") (= "=") (cast_expression "(bool)((bVar10 ^ 1U) & local_148 == (int *)0x0)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "((bVar10 ^ 1U) & local_148 == (int *)0x0)" (( "(") (binary_expression "(bVar10 ^ 1U) & local_148 == (int *)0x0" (parenthesized_expression "(bVar10 ^ 1U)" (( "(") (binary_expression "bVar10 ^ 1U" (identifier "bVar10") (^ "^") (number_literal "1U")) () ")")) (& "&") (binary_expression "local_148 == (int *)0x0" (identifier "local_148") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          } while (iVar19 < iVar24);" (do "do") (compound_statement "{\n            if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }\n            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);\n            iVar19 = iVar19 + 1;\n            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n          }" ({ "{") (if_statement "if (param_1 == (int *)0x0) {\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }\n            else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (bVar39) goto LAB_000f4c2c;\nLAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }\n            }" ({ "{") (if_statement "if (bVar39) goto LAB_000f4c2c;" (if "if") (parenthesized_expression "(bVar39)" (( "(") (identifier "bVar39") () ")")) (goto_statement "goto LAB_000f4c2c;" (goto "goto") (statement_identifier "LAB_000f4c2c") (; ";"))) (labeled_statement "LAB_000f4c96:\n              if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" (statement_identifier "LAB_000f4c96") (: ":") (if_statement "if (bVar10) {\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }\n              else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);\n              }" ({ "{") (expression_statement "FUN_00072f80(iVar25,iVar22 + 1 + iVar19);" (call_expression "FUN_00072f80(iVar25,iVar22 + 1 + iVar19)" (identifier "FUN_00072f80") (argument_list "(iVar25,iVar22 + 1 + iVar19)" (( "(") (identifier "iVar25") (, ",") (binary_expression "iVar22 + 1 + iVar19" (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1")) (+ "+") (identifier "iVar19")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" (else "else") (compound_statement "{\n                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];\n                FUN_000cb850();\n                iVar24 = piVar11[0xb] + 1;\n                piVar11[0xb] = iVar24;\n                FUN_00073150(iVar24);\n                uVar3 = *puVar7;\n                *(int *)(puVar7 + 0x1c) = iVar24;\n                *puVar7 = 0xa4;\n                puVar7[0x28] = uVar3;\n                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;\n              }" ({ "{") (expression_statement "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];" (assignment_expression "puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1]" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)local_148[iVar25 * 5 + 1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_148[iVar25 * 5 + 1]" (identifier "local_148") ([ "[") (binary_expression "iVar25 * 5 + 1" (binary_expression "iVar25 * 5" (identifier "iVar25") (* "*") (number_literal "5")) (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar24 = piVar11[0xb] + 1;" (assignment_expression "iVar24 = piVar11[0xb] + 1" (identifier "iVar24") (= "=") (binary_expression "piVar11[0xb] + 1" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11[0xb] = iVar24;" (assignment_expression "piVar11[0xb] = iVar24" (subscript_expression "piVar11[0xb]" (identifier "piVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "FUN_00073150(iVar24);" (call_expression "FUN_00073150(iVar24)" (identifier "FUN_00073150") (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "uVar3 = *puVar7;" (assignment_expression "uVar3 = *puVar7" (identifier "uVar3") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(int *)(puVar7 + 0x1c) = iVar24;" (assignment_expression "*(int *)(puVar7 + 0x1c) = iVar24" (pointer_expression "*(int *)(puVar7 + 0x1c)" (* "*") (cast_expression "(int *)(puVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x1c)" (( "(") (binary_expression "puVar7 + 0x1c" (identifier "puVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "*puVar7 = 0xa4;" (assignment_expression "*puVar7 = 0xa4" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xa4")) (; ";")) (expression_statement "puVar7[0x28] = uVar3;" (assignment_expression "puVar7[0x28] = uVar3" (subscript_expression "puVar7[0x28]" (identifier "puVar7") ([ "[") (number_literal "0x28") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;" (assignment_expression "*(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" (* "*") (cast_expression "(uint *)(puVar7 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar7 + 4) & 0xffffefff" (pointer_expression "*(uint *)(puVar7 + 4)" (* "*") (cast_expression "(uint *)(puVar7 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xffffefff"))) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" (else "else") (compound_statement "{\n              if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }\nLAB_000f4c2c:\n              FUN_000cb850();\n            }" ({ "{") (if_statement "if (param_1[1] < 1) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" (if "if") (parenthesized_expression "(param_1[1] < 1)" (( "(") (binary_expression "param_1[1] < 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                iVar25 = 0;\n              }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" (else "else") (compound_statement "{\n                iVar25 = 0;\n                iVar24 = *(int *)(*param_1 + 4);\n                while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }\n                if (!bVar39) goto LAB_000f4c96;\n              }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar24 = *(int *)(*param_1 + 4);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(*param_1 + 4)" (* "*") (cast_expression "(int *)(*param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (while_statement "while (iVar19 != iVar24) {\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" (while "while") (parenthesized_expression "(iVar19 != iVar24)" (( "(") (binary_expression "iVar19 != iVar24" (identifier "iVar19") (!= "!=") (identifier "iVar24")) () ")")) (compound_statement "{\n                  iVar25 = iVar25 + 1;\n                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;\n                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);\n                }" ({ "{") (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar25 == param_1[1]) goto LAB_000f4c2c;" (if "if") (parenthesized_expression "(iVar25 == param_1[1])" (( "(") (binary_expression "iVar25 == param_1[1]" (identifier "iVar25") (== "==") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (goto_statement "goto LAB_000f4c2c;" (goto "goto") (statement_identifier "LAB_000f4c2c") (; ";"))) (expression_statement "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);" (assignment_expression "iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(*param_1 + 4 + iVar25 * 8)" (* "*") (cast_expression "(int *)(*param_1 + 4 + iVar25 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4 + iVar25 * 8)" (( "(") (binary_expression "*param_1 + 4 + iVar25 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar25 * 8" (identifier "iVar25") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (!bVar39) goto LAB_000f4c96;" (if "if") (parenthesized_expression "(!bVar39)" (( "(") (unary_expression "!bVar39" (! "!") (identifier "bVar39")) () ")")) (goto_statement "goto LAB_000f4c96;" (goto "goto") (statement_identifier "LAB_000f4c96") (; ";"))) (} "}")))) (labeled_statement "LAB_000f4c2c:\n              FUN_000cb850();" (statement_identifier "LAB_000f4c2c") (: ":") (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (expression_statement "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);" (assignment_expression "iVar25 = iVar25 + (uint)(param_1 == (int *)0x0)" (identifier "iVar25") (= "=") (binary_expression "iVar25 + (uint)(param_1 == (int *)0x0)" (identifier "iVar25") (+ "+") (call_expression "(uint)(param_1 == (int *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" (identifier "iVar24") (= "=") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 < iVar24)" (( "(") (binary_expression "iVar19 < iVar24" (identifier "iVar19") (< "<") (identifier "iVar24")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar13 == 0) {\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00073230();\n          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);\n        }" ({ "{") (expression_statement "FUN_00073230();" (call_expression "FUN_00073230()" (identifier "FUN_00073230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar24 = (int)*(short *)((int)piVar12 + 0x2a);" (assignment_expression "iVar24 = (int)*(short *)((int)piVar12 + 0x2a)" (identifier "iVar24") (= "=") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}"))) (expression_statement "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);" (call_expression "FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" (identifier "FUN_000ef6e0") (argument_list "(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18)" (( "(") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "piVar12") (, ",") (binary_expression "(iVar22 - iVar24) + -1" (parenthesized_expression "(iVar22 - iVar24)" (( "(") (binary_expression "iVar22 - iVar24" (identifier "iVar22") (- "-") (identifier "iVar24")) () ")")) (+ "+") (number_literal "-1")) (, ",") (identifier "param_2") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;" (assignment_expression "iVar24 = *(short *)((int)piVar12 + 0x2a) + 1" (identifier "iVar24") (= "=") (binary_expression "*(short *)((int)piVar12 + 0x2a) + 1" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar34 = piVar12;" (assignment_expression "piVar34 = piVar12" (identifier "piVar34") (= "=") (identifier "piVar12")) (; ";")) (if_statement "if (iVar24 == 1) {\n          FUN_0004b0a0();\n        }\n        else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" (if "if") (parenthesized_expression "(iVar24 == 1)" (( "(") (binary_expression "iVar24 == 1" (identifier "iVar24") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          FUN_0004b0a0();\n        }" ({ "{") (expression_statement "FUN_0004b0a0();" (call_expression "FUN_0004b0a0()" (identifier "FUN_0004b0a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" (else "else") (if_statement "if (piVar11[7] < iVar24) {\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" (if "if") (parenthesized_expression "(piVar11[7] < iVar24)" (( "(") (binary_expression "piVar11[7] < iVar24" (subscript_expression "piVar11[7]" (identifier "piVar11") ([ "[") (number_literal "7") (] "]")) (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n          piVar11[7] = iVar24;\n          piVar11[8] = iVar22;\n        }" ({ "{") (expression_statement "piVar11[7] = iVar24;" (assignment_expression "piVar11[7] = iVar24" (subscript_expression "piVar11[7]" (identifier "piVar11") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "piVar11[8] = iVar22;" (assignment_expression "piVar11[8] = iVar22" (subscript_expression "piVar11[8]" (identifier "piVar11") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar22")) (; ";")) (} "}"))))) (} "}"))) (if_statement "if (iVar13 == 0) {\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }\n        if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }\n        if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }\n        if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }\n        if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }\n      }" ({ "{") (if_statement "if (piVar12[0xe] != 0) {\n          FUN_00073150(iVar15);\n        }" (if "if") (parenthesized_expression "(piVar12[0xe] != 0)" (( "(") (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00073150(iVar15);\n        }" ({ "{") (expression_statement "FUN_00073150(iVar15);" (call_expression "FUN_00073150(iVar15)" (identifier "FUN_00073150") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")"))) (; ";")) (} "}"))) (if_statement "if ((int)local_140 < 0) {\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }\n        else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" (if "if") (parenthesized_expression "((int)local_140 < 0)" (( "(") (binary_expression "(int)local_140 < 0" (cast_expression "(int)local_140" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_140")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);\n          if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }\n        }" ({ "{") (expression_statement "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);" (assignment_expression "piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe])" (identifier "piVar37") (= "=") (cast_expression "(int *)(uVar6 & 0x20 | piVar12[0xe])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 & 0x20 | piVar12[0xe])" (( "(") (binary_expression "uVar6 & 0x20 | piVar12[0xe]" (binary_expression "uVar6 & 0x20" (identifier "uVar6") (& "&") (number_literal "0x20")) (| "|") (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]"))) () ")")))) (; ";")) (if_statement "if (piVar37 == (int *)0x0) {\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }\n          else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" (if "if") (parenthesized_expression "(piVar37 == (int *)0x0)" (( "(") (binary_expression "piVar37 == (int *)0x0" (identifier "piVar37") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);\n            local_138 = 1;\n          }" ({ "{") (labeled_statement "LAB_000f4a81:\n            FUN_00072f80(local_12c,local_118,piVar34,piVar34);" (statement_identifier "LAB_000f4a81") (: ":") (expression_statement "FUN_00072f80(local_12c,local_118,piVar34,piVar34);" (call_expression "FUN_00072f80(local_12c,local_118,piVar34,piVar34)" (identifier "FUN_00072f80") (argument_list "(local_12c,local_118,piVar34,piVar34)" (( "(") (identifier "local_12c") (, ",") (identifier "local_118") (, ",") (identifier "piVar34") (, ",") (identifier "piVar34") () ")"))) (; ";"))) (expression_statement "local_138 = 1;" (assignment_expression "local_138 = 1" (identifier "local_138") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" (else "else") (compound_statement "{\n            FUN_00073150(local_12c);\n            local_138 = 0;\n          }" ({ "{") (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" (identifier "FUN_00073150") (argument_list "(local_12c)" (( "(") (identifier "local_12c") () ")"))) (; ";")) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" (identifier "local_138") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" (else "else") (compound_statement "{\n          if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }\n          if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }\n          FUN_00073150(0);\n          local_138 = 0;\n          piVar37 = local_144;\n        }" ({ "{") (if_statement "if (bVar10) {\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }\n          else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n            FUN_00072f80(local_140,local_12c,piVar34,piVar34);\n          }" ({ "{") (expression_statement "FUN_00072f80(local_140,local_12c,piVar34,piVar34);" (call_expression "FUN_00072f80(local_140,local_12c,piVar34,piVar34)" (identifier "FUN_00072f80") (argument_list "(local_140,local_12c,piVar34,piVar34)" (( "(") (identifier "local_140") (, ",") (identifier "local_12c") (, ",") (identifier "piVar34") (, ",") (identifier "piVar34") () ")"))) (; ";")) (} "}")) (else_clause "else if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" (else "else") (if_statement "if (local_158 == (int *)0x0) {\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }\n          else {\n            FUN_00073150(local_12c);\n          }" (if "if") (parenthesized_expression "(local_158 == (int *)0x0)" (( "(") (binary_expression "local_158 == (int *)0x0" (identifier "local_158") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;\n            FUN_000cb850();\n          }" ({ "{") (if_statement "if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;" (if "if") (parenthesized_expression "((*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0))" (( "(") (binary_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n') &&\n               (piVar37 = local_148, piVar12[0xe] == 0)" (parenthesized_expression "(*(char *)local_148[local_140 * 5 + 1] == 'n')" (( "(") (binary_expression "*(char *)local_148[local_140 * 5 + 1] == 'n'" (pointer_expression "*(char *)local_148[local_140 * 5 + 1]" (* "*") (cast_expression "(char *)local_148[local_140 * 5 + 1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_148[local_140 * 5 + 1]" (identifier "local_148") ([ "[") (binary_expression "local_140 * 5 + 1" (binary_expression "local_140 * 5" (identifier "local_140") (* "*") (number_literal "5")) (+ "+") (number_literal "1")) (] "]")))) (== "==") (char_literal "'n'" (' "'") (character "n") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(piVar37 = local_148, piVar12[0xe] == 0)" (( "(") (comma_expression "piVar37 = local_148, piVar12[0xe] == 0" (assignment_expression "piVar37 = local_148" (identifier "piVar37") (= "=") (identifier "local_148")) (, ",") (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000f4a81;" (goto "goto") (statement_identifier "LAB_000f4a81") (; ";"))) (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_00073150(local_12c);\n          }" (else "else") (compound_statement "{\n            FUN_00073150(local_12c);\n          }" ({ "{") (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" (identifier "FUN_00073150") (argument_list "(local_12c)" (( "(") (identifier "local_12c") () ")"))) (; ";")) (} "}")))))) (if_statement "if (piVar12[0xe] == 0) {\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }\n          else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" (if "if") (parenthesized_expression "(piVar12[0xe] == 0)" (( "(") (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar13 = FUN_00073150(0);\n            FUN_00072f80(local_12c,local_118);\n            if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }\n            iVar22 = unaff_EDI + 0xc9455;\n            if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }\n            *(int *)(iVar22 + 8) = local_144[0x1a];\n          }" ({ "{") (expression_statement "iVar13 = FUN_00073150(0);" (assignment_expression "iVar13 = FUN_00073150(0)" (identifier "iVar13") (= "=") (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00072f80(local_12c,local_118);" (call_expression "FUN_00072f80(local_12c,local_118)" (identifier "FUN_00072f80") (argument_list "(local_12c,local_118)" (( "(") (identifier "local_12c") (, ",") (identifier "local_118") () ")"))) (; ";")) (if_statement "if (iVar13 < 0) {\n              iVar13 = local_144[0x1a] + -1;\n            }" (if "if") (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              iVar13 = local_144[0x1a] + -1;\n            }" ({ "{") (expression_statement "iVar13 = local_144[0x1a] + -1;" (assignment_expression "iVar13 = local_144[0x1a] + -1" (identifier "iVar13") (= "=") (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar22 = unaff_EDI + 0xc9455;" (assignment_expression "iVar22 = unaff_EDI + 0xc9455" (identifier "iVar22") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" (if "if") (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" (* "*") (cast_expression "(char *)(*local_144 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_144 + 0x4d)" (( "(") (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar22 = local_144[0x19] + iVar13 * 0x18;\n            }" ({ "{") (expression_statement "iVar22 = local_144[0x19] + iVar13 * 0x18;" (assignment_expression "iVar22 = local_144[0x19] + iVar13 * 0x18" (identifier "iVar22") (= "=") (binary_expression "local_144[0x19] + iVar13 * 0x18" (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar13 * 0x18" (identifier "iVar13") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar22 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar22 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar22 + 8)" (* "*") (cast_expression "(int *)(iVar22 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_00073150(local_144[0x1a] + 2);\n          }" (else "else") (compound_statement "{\n            FUN_00073150(local_144[0x1a] + 2);\n          }" ({ "{") (expression_statement "FUN_00073150(local_144[0x1a] + 2);" (call_expression "FUN_00073150(local_144[0x1a] + 2)" (identifier "FUN_00073150") (argument_list "(local_144[0x1a] + 2)" (( "(") (binary_expression "local_144[0x1a] + 2" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "2")) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" (identifier "local_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar37 = local_144;" (assignment_expression "piVar37 = local_144" (identifier "piVar37") (= "=") (identifier "local_144")) (; ";")) (} "}")))) (if_statement "if (0 < local_118) {\n          FUN_00073150(local_12c);\n        }" (if "if") (parenthesized_expression "(0 < local_118)" (( "(") (binary_expression "0 < local_118" (number_literal "0") (< "<") (identifier "local_118")) () ")")) (compound_statement "{\n          FUN_00073150(local_12c);\n        }" ({ "{") (expression_statement "FUN_00073150(local_12c);" (call_expression "FUN_00073150(local_12c)" (identifier "FUN_00073150") (argument_list "(local_12c)" (( "(") (identifier "local_12c") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < *(short *)((int)piVar12 + 0x2a)) {\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" (if "if") (parenthesized_expression "(0 < *(short *)((int)piVar12 + 0x2a))" (( "(") (binary_expression "0 < *(short *)((int)piVar12 + 0x2a)" (number_literal "0") (< "<") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (compound_statement "{\n          local_134 = 0;\n          piVar37 = (int *)0x0;\n          do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));\n        }" ({ "{") (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" (identifier "local_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar37 = (int *)0x0;" (assignment_expression "piVar37 = (int *)0x0" (identifier "piVar37") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));" (do "do") (compound_statement "{\n            if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }\nLAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);\n          }" ({ "{") (if_statement "if ((int *)(int)(short)piVar12[10] == piVar37) {\n              FUN_00073150(0);\n            }\n            else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" (if "if") (parenthesized_expression "((int *)(int)(short)piVar12[10] == piVar37)" (( "(") (binary_expression "(int *)(int)(short)piVar12[10] == piVar37" (cast_expression "(int *)(int)(short)piVar12[10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(short)piVar12[10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)piVar12[10]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]"))))) (== "==") (identifier "piVar37")) () ")")) (compound_statement "{\n              FUN_00073150(0);\n            }" ({ "{") (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" (else "else") (compound_statement "{\n              if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }\n              if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }\n            }" ({ "{") (if_statement "if (param_1 == (int *)0x0) {\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }\n              else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }\n              }" ({ "{") (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" (identifier "iVar13") (= "=") (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37")) (* "*") (number_literal "0x10")) (+ "+") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }\n                else {\n                  local_134 = local_134 + 1;\n                }" (if "if") (parenthesized_expression "((*(byte *)(iVar13 + 0xf) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar13 + 0xf) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0xf) & 2)" (( "(") (binary_expression "*(byte *)(iVar13 + 0xf) & 2" (pointer_expression "*(byte *)(iVar13 + 0xf)" (* "*") (cast_expression "(byte *)(iVar13 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xf)" (( "(") (binary_expression "iVar13 + 0xf" (identifier "iVar13") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar22 = (int)piVar37 - local_134;\n                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;\n                }" ({ "{") (expression_statement "iVar22 = (int)piVar37 - local_134;" (assignment_expression "iVar22 = (int)piVar37 - local_134" (identifier "iVar22") (= "=") (binary_expression "(int)piVar37 - local_134" (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37")) (- "-") (identifier "local_134"))) (; ";")) (if_statement "if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;" (if "if") (parenthesized_expression "((-1 < iVar22) && (local_174 != (byte *)0x0))" (( "(") (binary_expression "(-1 < iVar22) && (local_174 != (byte *)0x0)" (parenthesized_expression "(-1 < iVar22)" (( "(") (binary_expression "-1 < iVar22" (number_literal "-1") (< "<") (identifier "iVar22")) () ")")) (&& "&&") (parenthesized_expression "(local_174 != (byte *)0x0)" (( "(") (binary_expression "local_174 != (byte *)0x0" (identifier "local_174") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_000f47c2;" (goto "goto") (statement_identifier "LAB_000f47c2") (; ";"))) (} "}")) (else_clause "else {\n                  local_134 = local_134 + 1;\n                }" (else "else") (compound_statement "{\n                  local_134 = local_134 + 1;\n                }" ({ "{") (expression_statement "local_134 = local_134 + 1;" (assignment_expression "local_134 = local_134 + 1" (identifier "local_134") (= "=") (binary_expression "local_134 + 1" (identifier "local_134") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" (else "else") (compound_statement "{\n                if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }\nLAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];\n              }" ({ "{") (if_statement "if (0 < param_1[1]) {\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" (if "if") (parenthesized_expression "(0 < param_1[1])" (( "(") (binary_expression "0 < param_1[1]" (number_literal "0") (< "<") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n                  iVar22 = 0;\n                  piVar34 = *(int **)(*param_1 + 4);\n                  while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }\n                  if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }\n                }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar34 = *(int **)(*param_1 + 4);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4)" (identifier "piVar34") (= "=") (pointer_expression "*(int **)(*param_1 + 4)" (* "*") (cast_expression "(int **)(*param_1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (while_statement "while (piVar34 != piVar37) {\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" (while "while") (parenthesized_expression "(piVar34 != piVar37)" (( "(") (binary_expression "piVar34 != piVar37" (identifier "piVar34") (!= "!=") (identifier "piVar37")) () ")")) (compound_statement "{\n                    iVar22 = iVar22 + 1;\n                    if (iVar22 == param_1[1]) goto LAB_000f47ad;\n                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);\n                  }" ({ "{") (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar22 == param_1[1]) goto LAB_000f47ad;" (if "if") (parenthesized_expression "(iVar22 == param_1[1])" (( "(") (binary_expression "iVar22 == param_1[1]" (identifier "iVar22") (== "==") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (goto_statement "goto LAB_000f47ad;" (goto "goto") (statement_identifier "LAB_000f47ad") (; ";"))) (expression_statement "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);" (assignment_expression "piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8)" (identifier "piVar34") (= "=") (pointer_expression "*(int **)(*param_1 + 4 + iVar22 * 8)" (* "*") (cast_expression "(int **)(*param_1 + 4 + iVar22 * 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 4 + iVar22 * 8)" (( "(") (binary_expression "*param_1 + 4 + iVar22 * 8" (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar22 * 8" (identifier "iVar22") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (local_174 != (byte *)0x0) {\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" (if "if") (parenthesized_expression "(local_174 != (byte *)0x0)" (( "(") (binary_expression "local_174 != (byte *)0x0" (identifier "local_174") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }\n                    goto LAB_000f4756;\n                  }" ({ "{") (labeled_statement "LAB_000f47c2:\n                    if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (statement_identifier "LAB_000f47c2") (: ":") (if_statement "if (bVar10) {\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }\n                    else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);\n                    }" ({ "{") (expression_statement "FUN_00072f80(iVar22,iVar16 + (int)piVar37);" (call_expression "FUN_00072f80(iVar22,iVar16 + (int)piVar37)" (identifier "FUN_00072f80") (argument_list "(iVar22,iVar16 + (int)piVar37)" (( "(") (identifier "iVar22") (, ",") (binary_expression "iVar16 + (int)piVar37" (identifier "iVar16") (+ "+") (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37"))) () ")"))) (; ";")) (} "}")) (else_clause "else if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (else "else") (if_statement "if (local_158 == (int *)0x0) {\n                      FUN_000cb850();\n                    }\n                    else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (if "if") (parenthesized_expression "(local_158 == (int *)0x0)" (( "(") (binary_expression "local_158 == (int *)0x0" (identifier "local_158") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      FUN_000cb850();\n                    }" ({ "{") (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (else "else") (if_statement "if (local_170 != iVar16) {\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" (if "if") (parenthesized_expression "(local_170 != iVar16)" (( "(") (binary_expression "local_170 != iVar16" (identifier "local_170") (!= "!=") (identifier "iVar16")) () ")")) (compound_statement "{\n                      FUN_00073150(iVar16 + (int)piVar37);\n                    }" ({ "{") (expression_statement "FUN_00073150(iVar16 + (int)piVar37);" (call_expression "FUN_00073150(iVar16 + (int)piVar37)" (identifier "FUN_00073150") (argument_list "(iVar16 + (int)piVar37)" (( "(") (binary_expression "iVar16 + (int)piVar37" (identifier "iVar16") (+ "+") (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37"))) () ")"))) (; ";")) (} "}")))))))) (goto_statement "goto LAB_000f4756;" (goto "goto") (statement_identifier "LAB_000f4756") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000f47ad:\n                iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (statement_identifier "LAB_000f47ad") (: ":") (expression_statement "iVar13 = (int)piVar37 * 0x10 + piVar12[1];" (assignment_expression "iVar13 = (int)piVar37 * 0x10 + piVar12[1]" (identifier "iVar13") (= "=") (binary_expression "(int)piVar37 * 0x10 + piVar12[1]" (binary_expression "(int)piVar37 * 0x10" (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37")) (* "*") (number_literal "0x10")) (+ "+") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (} "}")))) (if_statement "if (*(char *)((int)piVar11 + 0x17) == '\0') {\nLAB_000f474b:\n                FUN_000cb850();\n              }\n              else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" (if "if") (parenthesized_expression "(*(char *)((int)piVar11 + 0x17) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x17) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x17)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x17)" (( "(") (binary_expression "(int)piVar11 + 0x17" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x17")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000f474b:\n                FUN_000cb850();\n              }" ({ "{") (labeled_statement "LAB_000f474b:\n                FUN_000cb850();" (statement_identifier "LAB_000f474b") (: ":") (expression_statement "FUN_000cb850();" (call_expression "FUN_000cb850()" (identifier "FUN_000cb850") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" (else "else") (compound_statement "{\n                local_9c = CONCAT31(local_9c._1_3_,2);\n                local_98 = 0;\n                local_b0._4_4_ = unaff_EDI + -0xadd67;\n                local_a8[0] = unaff_EDI + -0xb66d7;\n                if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }\n                FUN_00087b20();\n              }" ({ "{") (expression_statement "local_9c = CONCAT31(local_9c._1_3_,2);" (assignment_expression "local_9c = CONCAT31(local_9c._1_3_,2)" (identifier "local_9c") (= "=") (call_expression "CONCAT31(local_9c._1_3_,2)" (identifier "CONCAT31") (argument_list "(local_9c._1_3_,2)" (( "(") (field_expression "local_9c._1_3_" (identifier "local_9c") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0._4_4_ = unaff_EDI + -0xadd67;" (assignment_expression "local_b0._4_4_ = unaff_EDI + -0xadd67" (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "unaff_EDI + -0xadd67" (identifier "unaff_EDI") (+ "+") (number_literal "-0xadd67"))) (; ";")) (expression_statement "local_a8[0] = unaff_EDI + -0xb66d7;" (assignment_expression "local_a8[0] = unaff_EDI + -0xb66d7" (subscript_expression "local_a8[0]" (identifier "local_a8") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "unaff_EDI + -0xb66d7" (identifier "unaff_EDI") (+ "+") (number_literal "-0xb66d7"))) (; ";")) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" (* "*") (cast_expression "(int *)(iVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  FUN_0005c830();\n                  if ((char)local_9c == '\0') goto LAB_000f474b;\n                }" ({ "{") (expression_statement "FUN_0005c830();" (call_expression "FUN_0005c830()" (identifier "FUN_0005c830") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((char)local_9c == '\0') goto LAB_000f474b;" (if "if") (parenthesized_expression "((char)local_9c == '\0')" (( "(") (binary_expression "(char)local_9c == '\0'" (cast_expression "(char)local_9c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_9c")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000f474b;" (goto "goto") (statement_identifier "LAB_000f474b") (; ";"))) (} "}"))) (expression_statement "FUN_00087b20();" (call_expression "FUN_00087b20()" (identifier "FUN_00087b20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_000f4756:\n            piVar37 = (int *)((int)piVar37 + 1);" (statement_identifier "LAB_000f4756") (: ":") (expression_statement "piVar37 = (int *)((int)piVar37 + 1);" (assignment_expression "piVar37 = (int *)((int)piVar37 + 1)" (identifier "piVar37") (= "=") (cast_expression "(int *)((int)piVar37 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar37 + 1)" (( "(") (binary_expression "(int)piVar37 + 1" (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a))" (( "(") (binary_expression "(int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a)" (cast_expression "(int)piVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar37")) (< "<") (cast_expression "(int)*(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))))) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar12[0xe] == 0) {\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }\n        else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" (if "if") (parenthesized_expression "(piVar12[0xe] == 0)" (( "(") (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);\n          FUN_000ec820(iVar15,0,0);\n          if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }\n          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);\n        }" ({ "{") (expression_statement "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37);" (call_expression "FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" (identifier "FUN_000efeb0") (argument_list "(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0\n                       ,0,param_3,piVar37,piVar37)" (( "(") (identifier "local_f0") (, ",") (identifier "local_ec") (, ",") (identifier "iVar15") (, ",") (number_literal "0") (, ",") (binary_expression "~local_140 >> 0x1f" (unary_expression "~local_140" (~ "~") (identifier "local_140")) (>> ">>") (number_literal "0x1f")) (, ",") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (, ",") (identifier "iVar18") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) (, ",") (number_literal "0") (, ",") (identifier "param_3") (, ",") (identifier "piVar37") (, ",") (identifier "piVar37") () ")"))) (; ";")) (expression_statement "FUN_000ec820(iVar15,0,0);" (call_expression "FUN_000ec820(iVar15,0,0)" (identifier "FUN_000ec820") (argument_list "(iVar15,0,0)" (( "(") (identifier "iVar15") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((int *)local_b0 == (int *)0x0) {\n            bVar39 = true;\n          }\n          else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" (if "if") (parenthesized_expression "((int *)local_b0 == (int *)0x0)" (( "(") (binary_expression "(int *)local_b0 == (int *)0x0" (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            bVar39 = true;\n          }" ({ "{") (expression_statement "bVar39 = true;" (assignment_expression "bVar39 = true" (identifier "bVar39") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" (else "else") (compound_statement "{\n            bVar39 = false;\n            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }\n          }" ({ "{") (expression_statement "bVar39 = false;" (assignment_expression "bVar39 = false" (identifier "bVar39") (= "=") (false "false")) (; ";")) (if_statement "if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" (if "if") (parenthesized_expression "((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0))" (( "(") (binary_expression "(iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)" (( "(") (comma_expression "bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (assignment_expression "bVar39 = true" (identifier "bVar39") (= "=") (true "true")) (, ",") (binary_expression "(*(byte *)(iVar26 + 0x1d) & 0x40) != 0" (parenthesized_expression "(*(byte *)(iVar26 + 0x1d) & 0x40)" (( "(") (binary_expression "*(byte *)(iVar26 + 0x1d) & 0x40" (pointer_expression "*(byte *)(iVar26 + 0x1d)" (* "*") (cast_expression "(byte *)(iVar26 + 0x1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x1d)" (( "(") (binary_expression "iVar26 + 0x1d" (identifier "iVar26") (+ "+") (number_literal "0x1d")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              iVar26 = FUN_00049430();\n              bVar39 = *(int *)(iVar26 + 8) == 0;\n            }" ({ "{") (expression_statement "iVar26 = FUN_00049430();" (assignment_expression "iVar26 = FUN_00049430()" (identifier "iVar26") (= "=") (call_expression "FUN_00049430()" (identifier "FUN_00049430") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar39 = *(int *)(iVar26 + 8) == 0;" (assignment_expression "bVar39 = *(int *)(iVar26 + 8) == 0" (identifier "bVar39") (= "=") (binary_expression "*(int *)(iVar26 + 8) == 0" (pointer_expression "*(int *)(iVar26 + 8)" (* "*") (cast_expression "(int *)(iVar26 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 8)" (( "(") (binary_expression "iVar26 + 8" (identifier "iVar26") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);" (call_expression "FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" (identifier "FUN_00073740") (argument_list "(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12)" (( "(") (identifier "local_ec") (, ",") (identifier "iVar15") (, ",") (identifier "local_168") (, ",") (number_literal "0") (, ",") (identifier "local_138") (, ",") (identifier "bVar39") (, ",") (identifier "piVar12") (, ",") (identifier "piVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" (else "else") (compound_statement "{\n          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }\n          FUN_0009a0c0();\n          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);\n          FUN_00062750(0xfffffff4);\n          uVar28 = (undefined2)param_2;\n          if (param_2 == 0xb) {\n            uVar28 = 2;\n          }\n          if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }\n          piVar34 = (int *)piVar11[0x1d];\n          if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }\n          *(undefined1 *)((int)piVar34 + 0x15) = 1;\n        }" ({ "{") (for_statement "for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));\n              piVar34 = (int *)piVar34[6]) {\n          }" (for "for") (( "(") (assignment_expression "piVar34 = (int *)piVar12[0x10]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar12[0x10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[0x10]" (identifier "piVar12") ([ "[") (number_literal "0x10") (] "]")))) (; ";") (parenthesized_expression "(piVar34 != (int *)0x0 && (iVar26 != *piVar34))" (( "(") (binary_expression "piVar34 != (int *)0x0 && (iVar26 != *piVar34)" (binary_expression "piVar34 != (int *)0x0" (identifier "piVar34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(iVar26 != *piVar34)" (( "(") (binary_expression "iVar26 != *piVar34" (identifier "iVar26") (!= "!=") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) () ")"))) () ")")) (; ";") (assignment_expression "piVar34 = (int *)piVar34[6]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar34[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar34[6]" (identifier "piVar34") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n          }" ({ "{") (} "}"))) (expression_statement "FUN_0009a0c0();" (call_expression "FUN_0009a0c0()" (identifier "FUN_0009a0c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);" (call_expression "FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" (identifier "FUN_00072f80") (argument_list "(*(short *)((int)piVar12 + 0x2a) + 2,iVar15)" (( "(") (binary_expression "*(short *)((int)piVar12 + 0x2a) + 2" (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")")))) (+ "+") (number_literal "2")) (, ",") (identifier "iVar15") () ")"))) (; ";")) (expression_statement "FUN_00062750(0xfffffff4);" (call_expression "FUN_00062750(0xfffffff4)" (identifier "FUN_00062750") (argument_list "(0xfffffff4)" (( "(") (number_literal "0xfffffff4") () ")"))) (; ";")) (expression_statement "uVar28 = (undefined2)param_2;" (assignment_expression "uVar28 = (undefined2)param_2" (identifier "uVar28") (= "=") (cast_expression "(undefined2)param_2" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "param_2"))) (; ";")) (if_statement "if (param_2 == 0xb) {\n            uVar28 = 2;\n          }" (if "if") (parenthesized_expression "(param_2 == 0xb)" (( "(") (binary_expression "param_2 == 0xb" (identifier "param_2") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n            uVar28 = 2;\n          }" ({ "{") (expression_statement "uVar28 = 2;" (assignment_expression "uVar28 = 2" (identifier "uVar28") (= "=") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (0 < local_144[0x1a]) {\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" (if "if") (parenthesized_expression "(0 < local_144[0x1a])" (( "(") (binary_expression "0 < local_144[0x1a]" (number_literal "0") (< "<") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;\n          }" ({ "{") (expression_statement "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;" (assignment_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28" (pointer_expression "*(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" (* "*") (cast_expression "(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16)" (( "(") (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19] + -0x16" (binary_expression "local_144[0x1a] * 0x18 + local_144[0x19]" (binary_expression "local_144[0x1a] * 0x18" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]"))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (} "}"))) (expression_statement "piVar34 = (int *)piVar11[0x1d];" (assignment_expression "piVar34 = (int *)piVar11[0x1d]" (identifier "piVar34") (= "=") (cast_expression "(int *)piVar11[0x1d]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[0x1d]" (identifier "piVar11") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (if_statement "if ((int *)piVar11[0x1d] == (int *)0x0) {\n            piVar34 = piVar11;\n          }" (if "if") (parenthesized_expression "((int *)piVar11[0x1d] == (int *)0x0)" (( "(") (binary_expression "(int *)piVar11[0x1d] == (int *)0x0" (cast_expression "(int *)piVar11[0x1d]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[0x1d]" (identifier "piVar11") ([ "[") (number_literal "0x1d") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            piVar34 = piVar11;\n          }" ({ "{") (expression_statement "piVar34 = piVar11;" (assignment_expression "piVar34 = piVar11" (identifier "piVar34") (= "=") (identifier "piVar11")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)piVar34 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)piVar34 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)piVar34 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)piVar34 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar34 + 0x15)" (( "(") (binary_expression "(int)piVar34 + 0x15" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n      }" (if "if") (parenthesized_expression "(local_16c != 0)" (( "(") (binary_expression "local_16c != 0" (identifier "local_16c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00073150(1);\n      }" ({ "{") (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" (identifier "FUN_00073150") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar14 != 0) {\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);\n      }" ({ "{") (expression_statement "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);" (call_expression "FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" (identifier "FUN_000ef6e0") (argument_list "(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18)" (( "(") (number_literal "0") (, ",") (number_literal "2") (, ",") (identifier "piVar12") (, ",") (binary_expression "local_110 - *(short *)((int)piVar12 + 0x2a)" (identifier "local_110") (- "-") (pointer_expression "*(short *)((int)piVar12 + 0x2a)" (* "*") (cast_expression "(short *)((int)piVar12 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 0x2a)" (( "(") (binary_expression "(int)piVar12 + 0x2a" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "0x2a")) () ")"))))) (, ",") (identifier "param_2") (, ",") (identifier "iVar18") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0006dec0();" (call_expression "FUN_0006dec0()" (identifier "FUN_0006dec0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (bVar10) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }\n      else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n        FUN_00073150(0);\n      }" ({ "{") (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" (identifier "FUN_00073150") (argument_list "(local_160)" (( "(") (identifier "local_160") () ")"))) (; ";")) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" (if "if") (parenthesized_expression "(iVar23 < 0)" (( "(") (binary_expression "iVar23 < 0" (identifier "iVar23") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" ({ "{") (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" (identifier "iVar23") (= "=") (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" (identifier "iVar26") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" (if "if") (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" (* "*") (cast_expression "(char *)(*local_144 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_144 + 0x4d)" (( "(") (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar26 = iVar23 * 0x18 + local_144[0x19];\n        }" ({ "{") (expression_statement "iVar26 = iVar23 * 0x18 + local_144[0x19];" (assignment_expression "iVar26 = iVar23 * 0x18 + local_144[0x19]" (identifier "iVar26") (= "=") (binary_expression "iVar23 * 0x18 + local_144[0x19]" (binary_expression "iVar23 * 0x18" (identifier "iVar23") (* "*") (number_literal "0x18")) (+ "+") (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" (* "*") (cast_expression "(int *)(iVar26 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 8)" (( "(") (binary_expression "iVar26 + 8" (identifier "iVar26") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" (else "else") (if_statement "if (local_158 != (int *)0x0) {\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" (if "if") (parenthesized_expression "(local_158 != (int *)0x0)" (( "(") (binary_expression "local_158 != (int *)0x0" (identifier "local_158") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_00073150(local_160);\n        if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }\n        iVar26 = unaff_EDI + 0xc9455;\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }\n        *(int *)(iVar26 + 8) = local_144[0x1a];\n      }" ({ "{") (expression_statement "FUN_00073150(local_160);" (call_expression "FUN_00073150(local_160)" (identifier "FUN_00073150") (argument_list "(local_160)" (( "(") (identifier "local_160") () ")"))) (; ";")) (if_statement "if (iVar23 < 0) {\n          iVar23 = local_144[0x1a] + -1;\n        }" (if "if") (parenthesized_expression "(iVar23 < 0)" (( "(") (binary_expression "iVar23 < 0" (identifier "iVar23") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar23 = local_144[0x1a] + -1;\n        }" ({ "{") (expression_statement "iVar23 = local_144[0x1a] + -1;" (assignment_expression "iVar23 = local_144[0x1a] + -1" (identifier "iVar23") (= "=") (binary_expression "local_144[0x1a] + -1" (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar26 = unaff_EDI + 0xc9455;" (assignment_expression "iVar26 = unaff_EDI + 0xc9455" (identifier "iVar26") (= "=") (binary_expression "unaff_EDI + 0xc9455" (identifier "unaff_EDI") (+ "+") (number_literal "0xc9455"))) (; ";")) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" (if "if") (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" (* "*") (cast_expression "(char *)(*local_144 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_144 + 0x4d)" (( "(") (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar26 = local_144[0x19] + iVar23 * 0x18;\n        }" ({ "{") (expression_statement "iVar26 = local_144[0x19] + iVar23 * 0x18;" (assignment_expression "iVar26 = local_144[0x19] + iVar23 * 0x18" (identifier "iVar26") (= "=") (binary_expression "local_144[0x19] + iVar23 * 0x18" (subscript_expression "local_144[0x19]" (identifier "local_144") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar23 * 0x18" (identifier "iVar23") (* "*") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar26 + 8) = local_144[0x1a];" (assignment_expression "*(int *)(iVar26 + 8) = local_144[0x1a]" (pointer_expression "*(int *)(iVar26 + 8)" (* "*") (cast_expression "(int *)(iVar26 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 8)" (( "(") (binary_expression "iVar26 + 8" (identifier "iVar26") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_144[0x1a]" (identifier "local_144") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (} "}"))))) (if_statement "if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         ) {\n        FUN_000916b0();\n      }" (if "if") (parenthesized_expression "(((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)\n         )" (( "(") (binary_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)" (parenthesized_expression "((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0))" (( "(") (binary_expression "(*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)piVar11 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x12) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x12)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x12)" (( "(") (binary_expression "(int)piVar11 + 0x12" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(piVar11[0x1e] == 0)" (( "(") (binary_expression "piVar11[0x1e] == 0" (subscript_expression "piVar11[0x1e]" (identifier "piVar11") ([ "[") (number_literal "0x1e") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar11[0x1c] != 0)" (( "(") (binary_expression "piVar11[0x1c] != 0" (subscript_expression "piVar11[0x1c]" (identifier "piVar11") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        FUN_000916b0();\n      }" ({ "{") (expression_statement "FUN_000916b0();" (call_expression "FUN_000916b0()" (identifier "FUN_000916b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" (identifier "local_17c") (= "=") (identifier "local_168")) (; ";")) (if_statement "if (local_16c != 0) {\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" (if "if") (parenthesized_expression "(local_16c != 0)" (( "(") (binary_expression "local_16c != 0" (identifier "local_16c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00073150(1);\n        FUN_00061230();\n        if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }\n      }" ({ "{") (expression_statement "FUN_00073150(1);" (call_expression "FUN_00073150(1)" (identifier "FUN_00073150") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00061230();" (call_expression "FUN_00061230()" (identifier "FUN_00061230") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(*local_144 + 0x4d) == '\0') {\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" (if "if") (parenthesized_expression "(*(char *)(*local_144 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*local_144 + 0x4d) == '\0'" (pointer_expression "*(char *)(*local_144 + 0x4d)" (* "*") (cast_expression "(char *)(*local_144 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_144 + 0x4d)" (( "(") (binary_expression "*local_144 + 0x4d" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);\n        }" ({ "{") (expression_statement "FUN_0006fe70(unaff_EDI + 0x6a7cc,0);" (call_expression "FUN_0006fe70(unaff_EDI + 0x6a7cc,0)" (identifier "FUN_0006fe70") (argument_list "(unaff_EDI + 0x6a7cc,0)" (( "(") (binary_expression "unaff_EDI + 0x6a7cc" (identifier "unaff_EDI") (+ "+") (number_literal "0x6a7cc")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000f3673;" (goto "goto") (statement_identifier "LAB_000f3673") (; ";")) (} "}"))) (if_statement "if (piVar12[0xe] == 0) {\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }\n  else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" (if "if") (parenthesized_expression "(piVar12[0xe] == 0)" (( "(") (binary_expression "piVar12[0xe] == 0" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar23 + 0x30) = local_f0;\n      param_3[5] = iVar23;\n      param_3[7] = local_f0;\n      param_3[6] = iVar16;\n      piVar34 = (int *)*param_3;\n      param_3[8] = local_ec;\n      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);\n      if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }\n    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);\n    FUN_000638a0();\n    local_17c = local_168;\n    if (local_148 != (int *)0x0) goto LAB_000f3688;\n  }" ({ "{") (expression_statement "*(int *)(iVar23 + 0x30) = local_f0;" (assignment_expression "*(int *)(iVar23 + 0x30) = local_f0" (pointer_expression "*(int *)(iVar23 + 0x30)" (* "*") (cast_expression "(int *)(iVar23 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x30)" (( "(") (binary_expression "iVar23 + 0x30" (identifier "iVar23") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "param_3[5] = iVar23;" (assignment_expression "param_3[5] = iVar23" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar23")) (; ";")) (expression_statement "param_3[7] = local_f0;" (assignment_expression "param_3[7] = local_f0" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "param_3[6] = iVar16;" (assignment_expression "param_3[6] = iVar16" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar34 = (int *)*param_3;" (assignment_expression "piVar34 = (int *)*param_3" (identifier "piVar34") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "param_3[8] = local_ec;" (assignment_expression "param_3[8] = local_ec" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_ec")) (; ";")) (expression_statement "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);" (assignment_expression "local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "local_b0") (= "=") (call_expression "CONCAT44(local_b0._4_4_,(int *)local_b0)" (identifier "CONCAT44") (argument_list "(local_b0._4_4_,(int *)local_b0)" (( "(") (field_expression "local_b0._4_4_" (identifier "local_b0") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int *)local_b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")) () ")")))) (; ";")) (if_statement "if (piVar34 != (int *)0x0) {\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" (if "if") (parenthesized_expression "(piVar34 != (int *)0x0)" (( "(") (binary_expression "piVar34 != (int *)0x0" (identifier "piVar34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar35 = 0;\n        do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);\n        local_b0 = uVar41;\n        if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }\n        iVar18 = FUN_00089330();\n        if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }\n      goto LAB_000f3d98;\n    }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        } while (uVar35 < 0x18);" (do "do") (compound_statement "{\n          *(undefined4 *)((int)local_a8 + uVar35) = 0;\n          uVar35 = uVar35 + 4;\n        }" ({ "{") (expression_statement "*(undefined4 *)((int)local_a8 + uVar35) = 0;" (assignment_expression "*(undefined4 *)((int)local_a8 + uVar35) = 0" (pointer_expression "*(undefined4 *)((int)local_a8 + uVar35)" (* "*") (cast_expression "(undefined4 *)((int)local_a8 + uVar35)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + uVar35)" (( "(") (binary_expression "(int)local_a8 + uVar35" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar35 = uVar35 + 4;" (assignment_expression "uVar35 = uVar35 + 4" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 4" (identifier "uVar35") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar35 < 0x18)" (( "(") (binary_expression "uVar35 < 0x18" (identifier "uVar35") (< "<") (number_literal "0x18")) () ")")) (; ";")) (expression_statement "local_b0 = uVar41;" (assignment_expression "local_b0 = uVar41" (identifier "local_b0") (= "=") (identifier "uVar41")) (; ";")) (if_statement "if (0 < *piVar34) {\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" (if "if") (parenthesized_expression "(0 < *piVar34)" (( "(") (binary_expression "0 < *piVar34" (number_literal "0") (< "<") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) () ")")) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);\n        }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < *piVar34);" (do "do") (compound_statement "{\n            iVar22 = FUN_00089330();\n            if (iVar22 != 0) goto LAB_000f3d98;\n            iVar18 = iVar18 + 1;\n          }" ({ "{") (expression_statement "iVar22 = FUN_00089330();" (assignment_expression "iVar22 = FUN_00089330()" (identifier "iVar22") (= "=") (call_expression "FUN_00089330()" (identifier "FUN_00089330") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar22 != 0) goto LAB_000f3d98;" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f3d98;" (goto "goto") (statement_identifier "LAB_000f3d98") (; ";"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < *piVar34)" (( "(") (binary_expression "iVar18 < *piVar34" (identifier "iVar18") (< "<") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_00089330();" (assignment_expression "iVar18 = FUN_00089330()" (identifier "iVar18") (= "=") (call_expression "FUN_00089330()" (identifier "FUN_00089330") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar18 = *(int *)(iVar23 + 0x18);\n          puVar8 = (uint *)*param_3;\n          uVar9 = *(undefined4 *)(iVar23 + 0x30);\n          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }\n      }" ({ "{") (expression_statement "iVar18 = *(int *)(iVar23 + 0x18);" (assignment_expression "iVar18 = *(int *)(iVar23 + 0x18)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar23 + 0x18)" (* "*") (cast_expression "(int *)(iVar23 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x18)" (( "(") (binary_expression "iVar23 + 0x18" (identifier "iVar23") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar8 = (uint *)*param_3;" (assignment_expression "puVar8 = (uint *)*param_3" (identifier "puVar8") (= "=") (cast_expression "(uint *)*param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(iVar23 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(iVar23 + 0x30)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(iVar23 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar23 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x30)" (( "(") (binary_expression "iVar23 + 0x30" (identifier "iVar23") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" (if "if") (parenthesized_expression "((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))))" (( "(") (binary_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||\n             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" (parenthesized_expression "(((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1))" (( "(") (binary_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)" (parenthesized_expression "((*(byte *)(iVar18 + 0x24) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar18 + 0x24) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar18 + 0x24) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar18 + 0x24) & 0x20" (pointer_expression "*(byte *)(iVar18 + 0x24)" (* "*") (cast_expression "(byte *)(iVar18 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x24)" (( "(") (binary_expression "iVar18 + 0x24" (identifier "iVar18") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*puVar8 != 1)" (( "(") (binary_expression "*puVar8 != 1" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))" (( "(") (parenthesized_expression "(*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1))" (( "(") (binary_expression "*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)" (binary_expression "*(char *)puVar8[1] != -0x62" (pointer_expression "*(char *)puVar8[1]" (* "*") (cast_expression "(char *)puVar8[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")))) (!= "!=") (number_literal "-0x62")) (|| "||") (parenthesized_expression "(*(int *)((char *)puVar8[1] + 0x20) != -1)" (( "(") (binary_expression "*(int *)((char *)puVar8[1] + 0x20) != -1" (pointer_expression "*(int *)((char *)puVar8[1] + 0x20)" (* "*") (cast_expression "(int *)((char *)puVar8[1] + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((char *)puVar8[1] + 0x20)" (( "(") (binary_expression "(char *)puVar8[1] + 0x20" (cast_expression "(char *)puVar8[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            piVar37 = (int *)local_90;\n            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }\n            local_58[0] = 0x9e;\n            local_90[0] = 0x66;\n            iVar22 = 0;\n            local_3c = uVar9;\n            local_84 = (int *)local_58;\n            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }\n        }" ({ "{") (expression_statement "piVar37 = (int *)local_90;" (assignment_expression "piVar37 = (int *)local_90" (identifier "piVar37") (= "=") (cast_expression "(int *)local_90" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90"))) (; ";")) (for_statement "for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" (for "for") (( "(") (assignment_expression "iVar23 = 0x1c" (identifier "iVar23") (= "=") (number_literal "0x1c")) (; ";") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar23 = iVar23 + -1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + -1" (identifier "iVar23") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n              *piVar37 = 0;\n              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;\n            }" ({ "{") (expression_statement "*piVar37 = 0;" (assignment_expression "*piVar37 = 0" (pointer_expression "*piVar37" (* "*") (identifier "piVar37")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar37 = piVar37 + (uint)bVar40 * -2 + 1;" (assignment_expression "piVar37 = piVar37 + (uint)bVar40 * -2 + 1" (identifier "piVar37") (= "=") (binary_expression "piVar37 + (uint)bVar40 * -2 + 1" (binary_expression "piVar37 + (uint)bVar40 * -2" (identifier "piVar37") (+ "+") (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar40")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_58[0] = 0x9e;" (assignment_expression "local_58[0] = 0x9e" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x9e")) (; ";")) (expression_statement "local_90[0] = 0x66;" (assignment_expression "local_90[0] = 0x66" (subscript_expression "local_90[0]" (identifier "local_90") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x66")) (; ";")) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" (identifier "local_3c") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" (identifier "local_84") (= "=") (cast_expression "(int *)local_58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_58"))) (; ";")) (for_statement "for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" (for "for") (( "(") (assignment_expression "iVar23 = *(int *)(iVar18 + 8)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar18 + 8)" (* "*") (cast_expression "(int *)(iVar18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")"))))) (; ";") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar23 = *(int *)(iVar23 + 0x14)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar23 + 0x14)" (* "*") (cast_expression "(int *)(iVar23 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x14)" (( "(") (binary_expression "iVar23 + 0x14" (identifier "iVar23") (+ "+") (number_literal "0x14")) () ")"))))) () ")") (compound_statement "{\n              if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }\nLAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);\n          }" ({ "{") (if_statement "if ((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35))" (( "(") (binary_expression "(*(char *)(iVar23 + 0x36) != '\0') &&\n                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" (parenthesized_expression "(*(char *)(iVar23 + 0x36) != '\0')" (( "(") (binary_expression "*(char *)(iVar23 + 0x36) != '\0'" (pointer_expression "*(char *)(iVar23 + 0x36)" (* "*") (cast_expression "(char *)(iVar23 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x36)" (( "(") (binary_expression "iVar23 + 0x36" (identifier "iVar23") (+ "+") (number_literal "0x36")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)" (( "(") (comma_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" (identifier "uVar35") (= "=") (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar23 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x32)" (( "(") (binary_expression "iVar23 + 0x32" (identifier "iVar23") (+ "+") (number_literal "0x32")) () ")"))))) (, ",") (binary_expression "*puVar8 == uVar35" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (== "==") (identifier "uVar35"))) () ")"))) () ")")) (compound_statement "{\n                iVar22 = *(int *)(iVar23 + 0x24);\n                if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar22 = *(int *)(iVar23 + 0x24);" (assignment_expression "iVar22 = *(int *)(iVar23 + 0x24)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar23 + 0x24)" (* "*") (cast_expression "(int *)(iVar23 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x24)" (( "(") (binary_expression "iVar23 + 0x24" (identifier "iVar23") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (iVar22 == 0) {\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }\n                else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }\n                  uVar27 = 0;\n                  while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }\n                }" ({ "{") (labeled_statement "LAB_000f502a:\n                  if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" (statement_identifier "LAB_000f502a") (: ":") (if_statement "if (uVar35 == 0) {\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" (if "if") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000f50dd:\n                    param_3[4] = iVar23;\n                    goto LAB_000f3d98;\n                  }" ({ "{") (labeled_statement "LAB_000f50dd:\n                    param_3[4] = iVar23;" (statement_identifier "LAB_000f50dd") (: ":") (expression_statement "param_3[4] = iVar23;" (assignment_expression "param_3[4] = iVar23" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar23")) (; ";"))) (goto_statement "goto LAB_000f3d98;" (goto "goto") (statement_identifier "LAB_000f3d98") (; ";")) (} "}")))) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);\n                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }\n                    local_160 = 0;\n                    while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }\n                    if ((int)uVar35 <= (int)local_160) break;\n                    uVar27 = uVar27 + 1;\n                    if (uVar35 == uVar27) goto LAB_000f50dd;\n                  }" ({ "{") (expression_statement "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);" (assignment_expression "local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" (identifier "local_88") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 0x20) + uVar27 * 4)" (( "(") (binary_expression "*(int *)(iVar23 + 0x20) + uVar27 * 4" (pointer_expression "*(int *)(iVar23 + 0x20)" (* "*") (cast_expression "(int *)(iVar23 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x20)" (( "(") (binary_expression "iVar23 + 0x20" (identifier "iVar23") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (binary_expression "uVar27 * 4" (identifier "uVar27") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }\n                    else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" (if "if") (parenthesized_expression "(*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2)" (( "(") (binary_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2" (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (* "*") (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" (( "(") (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" (* "*") (cast_expression "(int *)(iVar23 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 4)" (( "(") (binary_expression "iVar23 + 4" (identifier "iVar23") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar27 * 2" (identifier "uVar27") (* "*") (number_literal "2"))) () ")")))) (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);\n                      piVar34 = piVar37;\n                      if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }\n                    }" ({ "{") (expression_statement "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);" (assignment_expression "piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" (identifier "piVar37") (= "=") (pointer_expression "*(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4)" (( "(") (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4" (binary_expression "*(int *)(iVar23 + 0x28) + uVar27 * 0x14" (pointer_expression "*(int *)(iVar23 + 0x28)" (* "*") (cast_expression "(int *)(iVar23 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x28)" (( "(") (binary_expression "iVar23 + 0x28" (identifier "iVar23") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (binary_expression "uVar27 * 0x14" (identifier "uVar27") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar34 = piVar37;" (assignment_expression "piVar34 = piVar37" (identifier "piVar34") (= "=") (identifier "piVar37")) (; ";")) (if_statement "if ((char)*piVar37 != 'f') {\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" (if "if") (parenthesized_expression "((char)*piVar37 != 'f')" (( "(") (binary_expression "(char)*piVar37 != 'f'" (cast_expression "(char)*piVar37" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*piVar37" (* "*") (identifier "piVar37"))) (!= "!=") (char_literal "'f'" (' "'") (character "f") (' "'"))) () ")")) (compound_statement "{\n                        piVar34 = (int *)local_90;\n                        local_84 = piVar37;\n                      }" ({ "{") (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" (identifier "piVar34") (= "=") (cast_expression "(int *)local_90" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90"))) (; ";")) (expression_statement "local_84 = piVar37;" (assignment_expression "local_84 = piVar37" (identifier "local_84") (= "=") (identifier "piVar37")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" (else "else") (compound_statement "{\n                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);\n                      piVar34 = (int *)local_90;\n                      local_84 = (int *)local_58;\n                    }" ({ "{") (expression_statement "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);" (assignment_expression "local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (identifier "local_38") (= "=") (cast_expression "(int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (* "*") (cast_expression "(short *)(*(int *)(iVar23 + 4) + uVar27 * 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar23 + 4) + uVar27 * 2)" (( "(") (binary_expression "*(int *)(iVar23 + 4) + uVar27 * 2" (pointer_expression "*(int *)(iVar23 + 4)" (* "*") (cast_expression "(int *)(iVar23 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 4)" (( "(") (binary_expression "iVar23 + 4" (identifier "iVar23") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar27 * 2" (identifier "uVar27") (* "*") (number_literal "2"))) () ")")))))) (; ";")) (expression_statement "piVar34 = (int *)local_90;" (assignment_expression "piVar34 = (int *)local_90" (identifier "piVar34") (= "=") (cast_expression "(int *)local_90" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90"))) (; ";")) (expression_statement "local_84 = (int *)local_58;" (assignment_expression "local_84 = (int *)local_58" (identifier "local_84") (= "=") (cast_expression "(int *)local_58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_58"))) (; ";")) (} "}")))) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      iVar18 = FUN_000872a0(uVar9);\n                      iVar22 = extraout_ECX_02;\n                      if (iVar18 < 2) break;\n                      local_160 = local_160 + 1;\n                      if (uVar35 == local_160) goto LAB_000f4fe0;\n                    }" ({ "{") (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" (identifier "iVar18") (= "=") (call_expression "FUN_000872a0(uVar9)" (identifier "FUN_000872a0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "iVar22 = extraout_ECX_02;" (assignment_expression "iVar22 = extraout_ECX_02" (identifier "iVar22") (= "=") (identifier "extraout_ECX_02")) (; ";")) (if_statement "if (iVar18 < 2) break;" (if "if") (parenthesized_expression "(iVar18 < 2)" (( "(") (binary_expression "iVar18 < 2" (identifier "iVar18") (< "<") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_160 = local_160 + 1;" (assignment_expression "local_160 = local_160 + 1" (identifier "local_160") (= "=") (binary_expression "local_160 + 1" (identifier "local_160") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar35 == local_160) goto LAB_000f4fe0;" (if "if") (parenthesized_expression "(uVar35 == local_160)" (( "(") (binary_expression "uVar35 == local_160" (identifier "uVar35") (== "==") (identifier "local_160")) () ")")) (goto_statement "goto LAB_000f4fe0;" (goto "goto") (statement_identifier "LAB_000f4fe0") (; ";"))) (} "}"))) (if_statement "if ((int)uVar35 <= (int)local_160) break;" (if "if") (parenthesized_expression "((int)uVar35 <= (int)local_160)" (( "(") (binary_expression "(int)uVar35 <= (int)local_160" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (<= "<=") (cast_expression "(int)local_160" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_160"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar35 == uVar27) goto LAB_000f50dd;" (if "if") (parenthesized_expression "(uVar35 == uVar27)" (( "(") (binary_expression "uVar35 == uVar27" (identifier "uVar35") (== "==") (identifier "uVar27")) () ")")) (goto_statement "goto LAB_000f50dd;" (goto "goto") (statement_identifier "LAB_000f50dd") (; ";"))) (} "}"))) (} "}")) (else_clause "else if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" (else "else") (if_statement "if (param_3[1] != 0) {\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" (if "if") (parenthesized_expression "(param_3[1] != 0)" (( "(") (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar18 = FUN_000872a0(uVar9);\n                  iVar22 = extraout_ECX_01;\n                  if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }\n                }" ({ "{") (expression_statement "iVar18 = FUN_000872a0(uVar9);" (assignment_expression "iVar18 = FUN_000872a0(uVar9)" (identifier "iVar18") (= "=") (call_expression "FUN_000872a0(uVar9)" (identifier "FUN_000872a0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "iVar22 = extraout_ECX_01;" (assignment_expression "iVar22 = extraout_ECX_01" (identifier "iVar22") (= "=") (identifier "extraout_ECX_01")) (; ";")) (if_statement "if (iVar18 == 0) {\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);\n                    goto LAB_000f502a;\n                  }" ({ "{") (expression_statement "uVar35 = (uint)*(ushort *)(iVar23 + 0x32);" (assignment_expression "uVar35 = (uint)*(ushort *)(iVar23 + 0x32)" (identifier "uVar35") (= "=") (binary_expression "(uint)*(ushort *)(iVar23 + 0x32)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar23 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x32)" (( "(") (binary_expression "iVar23 + 0x32" (identifier "iVar23") (+ "+") (number_literal "0x32")) () ")"))))) (; ";")) (goto_statement "goto LAB_000f502a;" (goto "goto") (statement_identifier "LAB_000f502a") (; ";")) (} "}"))) (} "}"))))) (} "}"))) (labeled_statement "LAB_000f4fe0:\n            }\n            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" (statement_identifier "LAB_000f4fe0") (: ":") (ERROR "}" (} "}")) (expression_statement "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);" (call_expression "FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" (identifier "FUN_000886b0") (argument_list "(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22)" (( "(") (identifier "piVar11") (, ",") (binary_expression "unaff_EDI + 0x77d7d" (identifier "unaff_EDI") (+ "+") (number_literal "0x77d7d")) (, ",") (identifier "iVar22") (, ",") (identifier "iVar22") () ")"))) (; ";"))) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_000f3d98;" (goto "goto") (statement_identifier "LAB_000f3d98") (; ";")) (} "}"))) (expression_statement "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);" (call_expression "FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" (identifier "FUN_000886b0") (argument_list "(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35)" (( "(") (identifier "piVar11") (, ",") (binary_expression "&UNK_00077d4d + unaff_EDI" (pointer_expression "&UNK_00077d4d" (& "&") (identifier "UNK_00077d4d")) (+ "+") (identifier "unaff_EDI")) (, ",") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" (identifier "FUN_000638a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_17c = local_168;" (assignment_expression "local_17c = local_168" (identifier "local_17c") (= "=") (identifier "local_168")) (; ";")) (if_statement "if (local_148 != (int *)0x0) goto LAB_000f3688;" (if "if") (parenthesized_expression "(local_148 != (int *)0x0)" (( "(") (binary_expression "local_148 != (int *)0x0" (identifier "local_148") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000f3688;" (goto "goto") (statement_identifier "LAB_000f3688") (; ";"))) (} "}")) (else_clause "else {\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" (else "else") (compound_statement "{\n    FUN_000638a0();\n    local_17c = (int *)0x0;\nLAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;\n  }" ({ "{") (expression_statement "FUN_000638a0();" (call_expression "FUN_000638a0()" (identifier "FUN_000638a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_17c = (int *)0x0;" (assignment_expression "local_17c = (int *)0x0" (identifier "local_17c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000f36a8:\n    if (param_3 == (int *)0x0) goto LAB_000f370c;" (statement_identifier "LAB_000f36a8") (: ":") (if_statement "if (param_3 == (int *)0x0) goto LAB_000f370c;" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000f370c;" (goto "goto") (statement_identifier "LAB_000f370c") (; ";")))) (} "}")))) (labeled_statement "LAB_000f36b0:\n  if (*param_3 != 0) {\n    FUN_00063e30();\n  }" (statement_identifier "LAB_000f36b0") (: ":") (if_statement "if (*param_3 != 0) {\n    FUN_00063e30();\n  }" (if "if") (parenthesized_expression "(*param_3 != 0)" (( "(") (binary_expression "*param_3 != 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00063e30();\n  }" ({ "{") (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" (identifier "FUN_00063e30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (param_3[1] != 0) {\n    FUN_00063d60();\n  }" (if "if") (parenthesized_expression "(param_3[1] != 0)" (( "(") (binary_expression "param_3[1] != 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00063d60();\n  }" ({ "{") (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" (identifier "FUN_00063d60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3[2] != 0) {\n    FUN_00063e30();\n  }" (if "if") (parenthesized_expression "(param_3[2] != 0)" (( "(") (binary_expression "param_3[2] != 0" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00063e30();\n  }" ({ "{") (expression_statement "FUN_00063e30();" (call_expression "FUN_00063e30()" (identifier "FUN_00063e30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3[3] != 0) {\n    FUN_00063d60();\n  }" (if "if") (parenthesized_expression "(param_3[3] != 0)" (( "(") (binary_expression "param_3[3] != 0" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00063d60();\n  }" ({ "{") (expression_statement "FUN_00063d60();" (call_expression "FUN_00063d60()" (identifier "FUN_00063d60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" (identifier "FUN_00044090") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000f370c:\n  if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" (statement_identifier "LAB_000f370c") (: ":") (if_statement "if (local_158 != (int *)0x0) {\n    FUN_00063a90();\n  }" (if "if") (parenthesized_expression "(local_158 != (int *)0x0)" (( "(") (binary_expression "local_158 != (int *)0x0" (identifier "local_158") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00063a90();\n  }" ({ "{") (expression_statement "FUN_00063a90();" (call_expression "FUN_00063a90()" (identifier "FUN_00063a90") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (param_1 != (int *)0x0) {\n    FUN_0005b000();\n  }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_0005b000();\n  }" ({ "{") (expression_statement "FUN_0005b000();" (call_expression "FUN_0005b000()" (identifier "FUN_0005b000") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_17c != (int *)0x0) {\n    FUN_00044090();\n  }" (if "if") (parenthesized_expression "(local_17c != (int *)0x0)" (( "(") (binary_expression "local_17c != (int *)0x0" (identifier "local_17c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00044090();\n  }" ({ "{") (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" (identifier "FUN_00044090") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000f374a:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (statement_identifier "LAB_000f374a") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" (identifier "FUN_00153870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "")))

void function_1(type_1 *var_22,type_2 *var_26,type_3 *var_73,type_4 *pColumn,int onError,
                  type_5 *pUpsert)

{
  type_6 var_45;
  type_7 var_44;
  type_8 var_58;
  int var_120;
  type_9 *var_107;
  type_3 *var_86;
  type_6 *var_67;
  type_10 *var_112;
  type_11 *var_95;
  type_11 *p;
  bool var_94;
  type_12 uVar10;
  type_12 uVar11;
  type_12 uVar12;
  type_1 *pParse_00;
  type_13 *var_7;
  int var_11;
  type_14 *var_20;
  type_15 var_66;
  int *var_29;
  type_16 *var_100;
  int var_49;
  type_7 *var_84;
  type_14 *var_25;
  type_13 *var_30;
  type_17 *var_32;
  type_18 *pAVar22;
  type_1 *pPVar23;
  type_19 *pHVar24;
  type_13 *pTVar25;
  type_20 *pOVar26;
  type_21 *var_79;
  type_13 *var_4;
  type_9 *extraout_ECX;
  type_9 *psVar28;
  type_15 var_82;
  int var_37;
  type_15 *pHash;
  int nReg;
  type_22 *var_34;
  type_22 *extraout_ECX_00;
  type_22 *extraout_ECX_01;
  type_9 *extraout_ECX_02;
  type_9 *var_80;
  type_23 extraout_ECX_03;
  type_23 extraout_ECX_04;
  type_9 *extraout_ECX_05;
  bool bVar33;
  type_24 var_72;
  type_2 *pList;
  type_6 *var_68;
  int extraout_EDX;
  type_18 *pAVar36;
  type_13 **var_90;
  type_25 *pCVar38;
  type_9 *extraout_EDX_00;
  type_8 var_59;
  type_16 *var_77;
  int var_31;
  type_13 *pTVar42;
  type_22 *pB;
  type_15 var_57;
  type_7 *var_85;
  type_17 *var_53;
  int var_36;
  type_26 *var_114;
  type_11 **var_75;
  type_11 *var_41;
  type_13 *var_38;
  int var_3;
  type_6 bVar49;
  type_12 uVar50;
  int p3;
  type_13 *target;
  char *p3_00;
  char *in_stack_fffffe6c;
  char *var_96;
  type_23 uVar52;
  type_1 *in_stack_fffffe74;
  type_13 *in_stack_fffffe78;
  int in_stack_fffffe7c;
  type_27 *p_Var53;
  type_18 *var_65;
  type_9 *var_76;
  type_16 *var_47;
  type_13 *var_61;
  type_18 *var_63;
  type_15 var_117;
  type_13 *var_21;
  type_2 *var_27;
  type_11 *var_12;
  type_11 *var_17;
  type_15 var_93;
  int local_138;
  type_26 *var_83;
  type_15 var_60;
  type_13 *local_12c;
  type_13 *local_118;
  type_13 *local_110;
  int iDataCur;
  int iIdxCur;
  int tmask;
  type_28 dest;
  type_29 w;
  type_30 var_103;
  type_22 var_115 [2];
  
  bVar49 = 0;
  uVar50 = var_1();
  pList = var_2(uVar50,4);
  pParse_00 = (type_1 *)uVar50;
  var_120 = *(int *)(var_3 + 0x14);
  var_107 = pParse_00->var_107;
  iDataCur = 0;
  iIdxCur = 0;
  var_21 = var_4;
  if ((pParse_00->nErr == 0) && (var_107->mallocFailed == '\0')) {
    dest.iSDParm = 0;
    if (((var_4 != (type_13 *)0x0) && (((type_15)var_4->pIndex & 0x200) != 0)) && (var_4->addColOffset == 0)
       ) {
      var_12 = (type_11 *)var_4->zName;
      var_4->zName = (char *)0x0;
      var_5(var_107,(type_3 *)var_4,1);
      var_96 = (char *)0xf3f64;
      var_7 = var_6(pParse_00,pList);
      var_21 = var_7;
      if (var_7 != (type_13 *)0x0) {
        var_21 = (type_13 *)0x0;
        goto LAB_000f3620;
      }
      goto LAB_000f366b;
    }
    var_96 = (char *)0xf360c;
    var_7 = var_6(pParse_00,pList);
    if (var_7 == (type_13 *)0x0) {
      var_8(var_107,pList);
      var_65 = (type_18 *)0x0;
      goto LAB_000f36a8;
    }
    var_12 = (type_11 *)0x0;
LAB_000f3620:
    if (var_7->pSchema == (type_31 *)0x0) {
      var_11 = -16000000;
      var_83 = (type_26 *)0xfff0bdc0;
    }
    else {
      var_96 = (char *)0xf3634;
      var_83 = (type_26 *)var_9(var_107,var_7->pSchema);
      var_11 = (int)var_83 << 4;
    }
    var_11 = var_10((type_1 *)0x0,*(int *)((int)&var_107->aDb->zDbSName + var_11),
                              in_stack_fffffe6c,var_96,(char *)in_stack_fffffe74);
    if (var_11 != 0) {
LAB_000f366b:
      var_65 = (type_18 *)0x0;
LAB_000f3673:
      var_8(var_107,pList);
      if (var_12 != (type_11 *)0x0) {
LAB_000f3688:
        var_13(var_107,(type_10 *)var_12);
      }
      goto LAB_000f36a8;
    }
    var_66 = var_7->tabFlags;
    pTVar42 = (type_13 *)&tmask;
    var_20 = var_14(pParse_00,var_7,0x74,(type_10 *)0x0,(int *)pTVar42);
    var_86 = var_7->var_73;
    var_11 = var_15(pParse_00,var_7);
    if (((var_11 != 0) ||
        (var_11 = var_16(in_stack_fffffe74,in_stack_fffffe78,in_stack_fffffe7c),
        var_11 != 0)) ||
       ((var_17 = pParse_00->pVdbe, var_17 == (type_11 *)0x0 &&
        (var_17 = var_18(pParse_00), var_17 == (type_11 *)0x0)))) goto LAB_000f366b;
    if (pParse_00->nested == '\0') {
      var_17->field_0x8d = var_17->field_0x8d | 0x20;
    }
    var_19
              (pParse_00,(type_15)(var_20 != (type_14 *)0x0 || var_21 != (type_13 *)0x0),
               (int)var_83);
    if (((var_22 == (type_1 *)0x0) && (var_21 != (type_13 *)0x0)) &&
       ((pParse_00->pWith == (type_32 *)0x0 && (var_21->pVTable == (type_21 *)0x0)))) {
      psVar28 = pParse_00->var_107;
      var_25 = var_23(in_stack_fffffe74,in_stack_fffffe78,
                                   (type_1 *)var_24((int3)((type_15)in_stack_fffffe7c >> 8),
                                                     pParse_00->disableTriggers));
      if ((var_25 != (type_14 *)0x0) || (var_7->nModuleArg != 0)) goto LAB_000f380e;
      var_27 = var_26;
      if ((var_26 == (type_2 *)0xb) &&
         ((var_27 = (type_2 *)0x2, -1 < var_7->iPKey &&
          (var_27 = (type_2 *)(type_15)var_7->keyConf, var_27 == (type_2 *)0xb)))) {
        var_27 = (type_2 *)0x2;
      }
      var_29 = (int *)var_21->nTabRef;
      if ((((((*var_29 != 1) || (var_29[7] != 0)) || (var_21->tabFlags != 0)) ||
           (((*(int *)&var_21->keyConf != 0 ||
             (var_11._0_2_ = var_21->iPKey, var_11._2_2_ = var_21->nCol, var_11 != 0)) ||
            ((var_21->azModuleArg != (char **)0x0 ||
             ((var_21->addColOffset != 0 || (((type_15)var_21->pIndex & 1) != 0)))))))) ||
          ((*(int *)var_21->zName != 1 ||
           ((**(char **)((int)var_21->zName + 4) != -0x58 ||
            (var_30 = var_28(pParse_00,0,(type_33 *)(var_29 + 2)),
            var_30 == (type_13 *)0x0)))))) ||
         (((var_30->tnum == var_7->tnum && (var_30->pSchema == var_7->pSchema)) ||
          (((((((type_6)(var_7->tabFlags >> 5) ^ 1) & 1) != (((type_6)(var_30->tabFlags >> 5) ^ 1) & 1)
             || (var_30->nModuleArg != 0)) || (var_30->var_73 != (type_3 *)0x0)) ||
           ((var_11 = (int)var_7->nCol, var_7->nCol != var_30->nCol ||
            (var_38 = (type_13 *)(type_15)(type_8)var_30->iPKey, var_7->iPKey != var_30->iPKey))))))))
      goto LAB_000f380e;
      for (var_31 = 0; var_31 < var_11; var_31 = var_31 + 1) {
        pCVar38 = var_7->aCol;
        pTVar25 = (type_13 *)(var_30->aCol + var_31);
        if (pCVar38[var_31].affinity != *(char *)((int)&pTVar25->var_73 + 1)) goto LAB_000f380e;
        var_32 = pTVar25->pIndex;
        if (pCVar38[var_31].zColl != (char *)0x0) {
          if (var_32 == (type_17 *)0x0) goto LAB_000f380e;
          var_32 = (type_17 *)var_33(pCVar38[var_31].zColl,(char *)var_32);
        }
        if ((var_32 != (type_17 *)0x0) ||
           ((pCVar38[var_31].notNull != '\0' && (*(type_7 *)&pTVar25->var_73 == '\0'))))
        goto LAB_000f380e;
        var_38 = pTVar25;
        if (0 < var_31) {
          var_34 = pCVar38[var_31].pDflt;
          if ((var_34 == (type_22 *)0x0) != ((type_22 *)pTVar25->aCol == (type_22 *)0x0)) goto LAB_000f380e;
          var_38 = (type_13 *)var_24((int3)((type_15)pTVar25 >> 8),var_34 == (type_22 *)0x0);
          if (var_34 != (type_22 *)0x0) {
            pTVar42 = (type_13 *)(((type_22 *)pTVar25->aCol)->u).zToken;
            var_37 = var_35((var_34->u).zToken,(char *)pTVar42);
            var_38 = (type_13 *)(var_36 + 0xc78c1);
            if (var_37 != 0) goto LAB_000f380e;
          }
        }
      }
      var_47 = (type_16 *)0x0;
      for (var_32 = var_7->pIndex; var_32 != (type_17 *)0x0; var_32 = var_32->pNext) {
        var_38 = (type_13 *)var_30->pIndex;
        if (var_32->onError != '\0') {
          var_47 = (type_16 *)0x1;
        }
        while( true ) {
          if (var_38 == (type_13 *)0x0) goto LAB_000f380e;
          if (((var_32->nKeyCol == *(type_24 *)&var_38->field_0x32) &&
              (var_32->onError == *(type_7 *)((int)&var_38->addColOffset + 2))) &&
             (var_11 = var_39(var_32,(type_17 *)var_38), var_11 != 0)) break;
          var_38 = (type_13 *)var_38->zColAff;
        }
      }
      if ((((var_7->pCheck != (type_10 *)0x0) &&
           (var_11 = var_40(var_30->pCheck,var_7->pCheck,-1), var_11 != 0)) ||
          (((psVar28->flags & 0x4000) != 0 && (var_7->pFKey != (type_34 *)0x0)))) ||
         ((psVar28->flags & 0x80) != 0)) goto LAB_000f380e;
      if (var_30->pSchema == (type_31 *)0x0) {
        var_93 = -1000000;
      }
      else {
        var_93 = var_9(psVar28,var_30->pSchema);
      }
      var_41 = pParse_00->pVdbe;
      if (var_41 == (type_11 *)0x0) {
        var_41 = var_18(pParse_00);
      }
      var_42(pParse_00,var_93);
      var_11 = pParse_00->nTab;
      local_12c = (type_13 *)0x0;
      pParse_00->nTab = var_11 + 2;
      if ((var_7->tabFlags & 8) != 0) {
        local_12c = (type_13 *)var_43(pParse_00,(int)var_83,var_7);
      }
      var_44 = pParse_00->nTempReg;
      if (var_44 == '\0') {
        var_63 = (type_18 *)(pParse_00->nMem + 1);
        pParse_00->nMem = (int)var_63;
LAB_000f592a:
        var_38 = (type_13 *)(pParse_00->nMem + 1);
        pParse_00->nMem = (int)var_38;
        var_61 = var_38;
      }
      else {
        var_45 = var_44 - 1;
        pParse_00->nTempReg = var_45;
        var_63 = (type_18 *)pParse_00->aTempReg[var_45];
        if (var_45 == 0) goto LAB_000f592a;
        pParse_00->nTempReg = var_44 - 2;
        var_61 = (type_13 *)pParse_00->aTempReg[(type_6)(var_44 - 2)];
      }
      var_31 = var_11 + 1;
      var_37 = 0x6e;
      var_46(pParse_00,(int)var_7,0x6e,var_38,(int)var_38);
      var_80 = extraout_ECX_02;
      if ((psVar28->mDbFlags & 4) == 0) {
        if (((var_7->iPKey < 0) && (var_7->pIndex != (type_17 *)0x0)) ||
           ((var_47 != (type_16 *)0x0 ||
            (&DAT_00000001 < (type_16 *)((int)&var_27[-1].a[0].pIBIndex + 3))))) {
          var_49 = var_48(var_41,0x24,var_31,0,var_37);
          var_47 = (type_16 *)var_48(var_41,0xb,0,0,var_37);
          if (var_49 < 0) {
            var_49 = var_41->nOp + -1;
          }
          var_80 = var_41->var_107;
          pOVar26 = (type_20 *)(var_36 + 0xc9455);
          if (var_80->mallocFailed == '\0') {
            pOVar26 = var_41->aOp + var_49;
          }
          pOVar26->p2 = var_41->nOp;
        }
      }
      else {
        var_47 = (type_16 *)0x0;
      }
      if ((var_30->tabFlags & 0x20) == 0) {
        var_37 = 0x6d;
        var_46(pParse_00,(int)var_30,0x6d,(type_13 *)var_80,(int)var_80);
        var_60 = var_48(var_41,0x24,var_11,0,var_37);
        if (var_7->iPKey < 0) {
          if (var_7->pIndex == (type_17 *)0x0) {
            var_49 = var_48(var_41,0x79,var_31,(int)var_61,var_37);
          }
          else {
            var_49 = var_48(var_41,0x80,var_11,(int)var_61,var_37);
          }
        }
        else {
          var_49 = var_48(var_41,0x80,var_11,(int)var_61,var_37);
          pTVar42 = var_61;
          var_37 = var_48(var_41,0x1f,var_31,0,(int)var_61);
          var_50(pParse_00,(int)var_27,var_7);
          if (var_37 < 0) {
            var_37 = var_41->nOp + -1;
          }
          pOVar26 = (type_20 *)(var_36 + 0xc9455);
          if (var_41->var_107->mallocFailed == '\0') {
            pOVar26 = var_41->aOp + var_37;
          }
          pOVar26->p2 = var_41->nOp;
          if (0 < (int)local_12c) {
            var_48(pParse_00->pVdbe,0x97,(int)local_12c,(int)var_61,(int)pTVar42);
          }
        }
        var_72 = 0x29;
        var_37 = 1;
        var_48(var_41,0x7f,var_11,(int)var_63,1);
        if ((psVar28->mDbFlags & 4) != 0) {
          var_72 = 0x39;
          var_48(var_41,0x82,var_31,0,var_37);
        }
        pTVar42 = var_61;
        var_37 = var_48(var_41,0x7a,var_31,(int)var_63,(int)var_61);
        var_51(var_41,var_37,(char *)var_7,-6);
        if (0 < var_41->nOp) {
          var_41->aOp[var_41->nOp + -1].p5 = var_72;
        }
        var_48(var_41,5,var_11,var_49,(int)pTVar42);
        var_48(var_41,0x75,var_11,0,(int)pTVar42);
        var_48(var_41,0x75,var_31,0,(int)pTVar42);
      }
      else {
        var_52(pParse_00,(int)var_83,var_7->tnum,'\x01',var_7->zName);
        pTVar42 = (type_13 *)var_30->zName;
        var_52(pParse_00,var_93,var_30->tnum,'\0',(char *)pTVar42);
        var_60 = 0;
      }
      var_96 = (char *)(var_36 + 0x67fba);
      for (var_32 = var_7->pIndex; var_32 != (type_17 *)0x0; var_32 = var_32->pNext) {
        var_53 = var_30->pIndex;
        while( true ) {
          if (var_53 == (type_17 *)0x0) {
            var_54();
            return;
          }
          if (((var_32->nKeyCol == var_53->nKeyCol) && (var_32->onError == var_53->onError)) &&
             (var_37 = var_39(var_32,var_53), var_37 != 0)) break;
          var_53 = var_53->pNext;
        }
        uVar52 = extraout_ECX_03;
        var_48(var_41,0x6d,var_11,var_53->tnum,var_93);
        var_55(pParse_00,var_53);
        var_56(var_41,var_96,var_53->zName,uVar52);
        var_48(var_41,0x6e,var_31,var_32->tnum,(int)var_83);
        var_55(pParse_00,var_32);
        if (0 < var_41->nOp) {
          var_41->aOp[var_41->nOp + -1].p5 = 1;
        }
        p3_00 = var_96;
        var_56(var_41,var_96,var_32->zName,extraout_ECX_04);
        var_27 = (type_2 *)var_48(var_41,0x24,var_11,0,(int)p3_00);
        var_59 = 0;
        pTVar42 = (type_13 *)&DAT_00000001;
        var_48(var_41,0x7f,var_11,(int)var_63,1);
        if ((psVar28->mDbFlags & 4) != 0) {
          var_58 = var_53->nColumn;
          for (var_57 = 0; (int)var_57 < (int)(type_15)var_58; var_57 = var_57 + 1) {
            if ((var_53->azColl[var_57] == (char *)0x0) ||
               (var_37 = var_33((char *)(var_36 + 0x760a9),var_53->azColl[var_57]),
               var_37 != 0)) {
              var_59 = 0;
              goto LAB_000f55d2;
            }
          }
          var_59 = 0;
          if (var_57 == var_58) {
            var_59 = 0x10;
            var_48(var_41,0x82,var_31,0,(int)pTVar42);
          }
        }
LAB_000f55d2:
        if (((var_30->tabFlags & 0x20) != 0) && ((var_32->field_0x37 & 3) == 2)) {
          var_59 = var_59 | 1;
        }
        var_48(var_41,0x84,var_31,(int)var_63,(int)pTVar42);
        if (0 < var_41->nOp) {
          var_41->aOp[var_41->nOp + -1].p5 = var_59 | 8;
        }
        var_48(var_41,5,var_11,(int)var_27 + 1,(int)pTVar42);
        if ((int)var_27 < 0) {
          var_27 = (type_2 *)(var_41->nOp + -1);
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (var_41->var_107->mallocFailed == '\0') {
          pOVar26 = var_41->aOp + (int)var_27;
        }
        pOVar26->p2 = var_41->nOp;
        var_48(var_41,0x75,var_11,0,(int)pTVar42);
        var_48(var_41,0x75,var_31,0,(int)pTVar42);
      }
      if (var_60 != 0) {
        if ((int)var_60 < 0) {
          var_60 = var_41->nOp + -1;
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (var_41->var_107->mallocFailed == '\0') {
          pOVar26 = var_41->aOp + var_60;
        }
        pOVar26->p2 = var_41->nOp;
      }
      if (var_61 != (type_13 *)0x0) {
        var_62(pParse_00,(int)var_61);
      }
      if (var_63 != (type_18 *)0x0) {
        var_62(pParse_00,(int)var_63);
      }
      uVar12._4_4_ = var_103.pSrcList;
      uVar12._0_4_ = var_103.var_22;
      uVar11._4_4_ = var_103.pSrcList;
      uVar11._0_4_ = var_103.var_22;
      if (var_47 != (type_16 *)0x0) {
        if (pParse_00->pAinc != (type_18 *)0x0) {
          var_64(pParse_00);
        }
        var_48(var_41,0x45,0,0,(int)pTVar42);
        if ((int)var_47 < 0) {
          var_47 = (type_16 *)(var_41->nOp + -1);
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (var_41->var_107->mallocFailed == '\0') {
          pOVar26 = var_41->aOp + (int)var_47;
        }
        pOVar26->p2 = var_41->nOp;
        var_48(var_41,0x75,var_31,0,(int)pTVar42);
        goto LAB_000f380e;
      }
      var_65 = (type_18 *)0x0;
      if (((pParse_00->nested == '\0') &&
          (var_103._0_8_ = uVar11, pParse_00->pTriggerTab == (type_13 *)0x0)) &&
         (var_65 = pParse_00->pAinc, var_103._0_8_ = uVar12, var_65 != (type_18 *)0x0)) {
        var_64(pParse_00);
        var_65 = (type_18 *)0x0;
      }
      goto LAB_000f3673;
    }
LAB_000f380e:
    local_118 = (type_13 *)0x0;
    if ((var_7->tabFlags & 8) != 0) {
      local_118 = (type_13 *)var_43(pParse_00,(int)var_83,var_7);
    }
    local_110 = (type_13 *)pParse_00->nMem;
    var_11 = (int)&local_110->zName + var_7->nCol + 1;
    var_30 = (type_13 *)((int)&local_110->zName + 1);
    pParse_00->nMem = var_11;
    local_12c = var_30;
    if (var_7->nModuleArg != 0) {
      local_12c = (type_13 *)((int)&local_110->zName + 2);
      pParse_00->nMem = var_11 + 1;
      local_110 = var_30;
    }
    var_66 = var_66 & 0x20;
    var_60 = (var_7->tabFlags >> 7 & 0xff ^ 1) & 0xffffff01;
    if ((var_22 == (type_1 *)0x0) || ((int)var_22->zErrMsg < 1)) {
LAB_000f4012:
      var_93 = 0xffffffff;
    }
    else {
      var_11 = 0;
      do {
        var_22->var_107->aLimit[var_11 * 2 + -0x19] = -1;
        var_11 = var_11 + 1;
      } while (var_11 < (int)var_22->zErrMsg);
      if ((int)var_22->zErrMsg < 1) goto LAB_000f4012;
      var_27 = (type_2 *)0x0;
      var_93 = 0xffffffff;
      var_47 = (type_16 *)(int)var_7->nCol;
      do {
        var_29 = var_22->var_107->aLimit + (int)var_27 * 2 + -0x1a;
        var_76 = (type_9 *)*var_29;
        if (0 < (int)var_47) {
          var_57 = 0;
          var_11 = var_36 + 0x76279;
          do {
            var_67 = (type_6 *)var_7->aCol[var_57].zName;
            var_68 = (type_6 *)var_76;
            var_45 = *(type_6 *)var_76;
            if (*(char *)(var_11 + (type_15)*var_67) ==
                *(char *)(var_36 + 0x76279 + (type_15)*(type_6 *)var_76)) {
              do {
                if (var_45 == 0) {
                  var_29[1] = var_57;
                  if ((type_2 *)var_57 != var_27) {
                    var_60._0_1_ = 0;
                  }
                  var_60 = (type_15)(type_6)var_60;
                  if ((int)var_7->iPKey == var_57) {
                    var_93 = (type_15)var_27;
                  }
                  var_47 = (type_16 *)(int)var_7->nCol;
                  if ((int)var_57 < (int)var_47) goto LAB_000f39c8;
                  var_76 = (type_9 *)var_22->var_107->aLimit[(int)var_27 * 2 + -0x1a];
                  goto LAB_000f399e;
                }
                var_67 = var_67 + 1;
                var_68 = var_68 + 1;
                var_45 = *var_68;
              } while (*(char *)(var_11 + (type_15)var_45) == *(char *)(var_11 + (type_15)*var_67));
            }
            var_57 = var_57 + 1;
          } while ((type_16 *)var_57 != var_47);
        }
LAB_000f399e:
        var_11 = var_69((char *)var_76);
        if ((var_11 == 0) || (var_66 != 0)) {
          var_70(pParse_00,(char *)(var_36 + 0x77cf9),pList,0,var_76);
          pParse_00->checkSchema = '\x01';
          var_65 = (type_18 *)0x0;
          goto LAB_000f3673;
        }
        var_60 = 0;
        var_93 = (type_15)var_27;
LAB_000f39c8:
        var_27 = (type_2 *)((int)var_27 + 1);
      } while ((int)var_27 < (int)var_22->zErrMsg);
    }
    var_100 = (type_16 *)((int)&local_12c->zName + 1);
    if (var_21 == (type_13 *)0x0) {
      var_57 = 0;
      do {
        *(type_23 *)((int)var_115 + (var_57 - 0x1c)) = 0;
        var_57 = var_57 + 4;
      } while (var_57 < 0x1c);
      var_94 = false;
      var_103.var_22 = pParse_00;
      if (var_12 == (type_11 *)0x0) {
        var_47 = (type_16 *)0x0;
        var_57 = 0;
        var_76 = (type_9 *)0x0;
        var_11 = -1;
      }
      else {
        var_11 = 0;
        var_76 = var_12->var_107;
        var_75 = &var_12->pPrev;
        p_Var53 = (type_27 *)(var_36 + -0x50327);
        if (0 < (int)var_76) {
          do {
            var_41 = *var_75;
            if (var_41 != (type_11 *)0x0) {
              var_72 = var_103.ncFlags;
              w.u.pNC = &var_103;
              w.xSelectCallback2 = (type_35 *)0x0;
              var_103._24_4_ = var_103._24_4_ & 0xffff6fef;
              w.var_22 = var_103.var_22;
              var_37 = var_41->nMem + (var_103.var_22)->nHeight;
              (var_103.var_22)->nHeight = var_37;
              var_31 = (var_103.var_22)->var_107->aLimit[3];
              w.xExprCallback = p_Var53;
              w.xSelectCallback = (type_36 *)(var_36 + -0x606a7);
              if (var_31 < var_37) {
                var_70(var_103.var_22,(char *)(var_36 + 0x768cd),var_31);
              }
              else {
                var_71(&w,(type_22 *)var_41);
                (w.var_22)->nHeight = (w.var_22)->nHeight - var_41->nMem;
                if ((var_103._24_4_ & 0x10) != 0) {
                  var_41->pPrev = (type_11 *)((type_15)var_41->pPrev | 2);
                }
                if ((short)var_103.ncFlags < 0) {
                  var_41->pPrev = (type_11 *)((type_15)var_41->pPrev | 0x8000000);
                }
                var_103.ncFlags = var_72 & 0x9010 | var_103.ncFlags;
                if ((var_103.nErr < 1) && ((w.var_22)->nErr < 1)) goto LAB_000f41e7;
              }
              var_8(var_107,pList);
              var_13(var_107,(type_10 *)var_12);
              var_65 = (type_18 *)0x0;
              if (var_73 != (type_3 *)0x0) goto LAB_000f36b0;
              if (var_22 != (type_1 *)0x0) {
                var_74(var_107,(type_4 *)var_22);
              }
              goto LAB_000f374a;
            }
LAB_000f41e7:
            var_11 = var_11 + 1;
            var_75 = var_75 + 5;
          } while (var_11 < (int)var_12->var_107);
          var_47 = (type_16 *)0x0;
          var_11 = -1;
          var_61._0_1_ = var_22 == (type_1 *)0x0;
          var_57 = (type_15)var_61._0_1_;
          goto LAB_000f3c52;
        }
        var_47 = (type_16 *)0x0;
        var_11 = -1;
        var_57 = (type_15)(var_22 == (type_1 *)0x0 && var_76 != (type_9 *)0x0);
      }
    }
    else {
      var_31 = pParse_00->nMem + 1;
      pParse_00->nMem = var_31;
      var_77 = (type_16 *)var_17->nOp;
      pTVar42 = (type_13 *)(var_77 + 1);
      var_48(var_17,0xd,var_31,0,(int)pTVar42);
      dest.eDest = '\r';
      dest.zAffSdst = (char *)0x0;
      dest.iSdst = (int)(type_16 *)0x0;
      if ((type_6)var_60 != '\0') {
        dest.iSdst = (int)var_100;
      }
      dest.nSdst = (int)var_7->nCol;
      dest.iSDParm = var_31;
      var_11 = var_78(pParse_00,(type_3 *)var_21,&dest);
      var_37 = dest.iSdst;
      if (((var_11 != 0) || (var_107->mallocFailed != '\0')) || (var_11 = pParse_00->nErr, var_11 != 0))
      goto LAB_000f366b;
      var_47 = (type_16 *)dest.iSdst;
      var_48(var_17,0x43,var_31,0,(int)pTVar42);
      var_17->var_22->nTempReg = '\0';
      var_17->var_22->nRangeReg = 0;
      var_80 = (type_9 *)var_17->nOp;
      psVar28 = var_17->var_107;
      if ((int)var_77 < 0) {
        var_77 = (type_16 *)((int)&var_80[-1].pNextBlocked + 3);
      }
      pOVar26 = (type_20 *)(var_36 + 0xc9455);
      if (psVar28->mallocFailed == '\0') {
        psVar28 = (type_9 *)((int)var_77 * 3);
        pOVar26 = var_17->aOp + (int)var_77;
      }
      pOVar26->p2 = (int)var_80;
      var_76 = *(type_9 **)var_21->zName;
      if (var_20 == (type_14 *)0x0) {
        var_41 = pParse_00->pVdbe;
        if (var_41 == (type_11 *)0x0) {
          var_41 = var_18(pParse_00);
          psVar28 = extraout_ECX_05;
          var_80 = extraout_EDX_00;
        }
        var_79 = (type_21 *)0x0;
        if (var_7->nModuleArg != 0) {
          var_80 = pParse_00->var_107;
          for (var_79 = var_7->pVTable; (var_79 != (type_21 *)0x0 && (var_80 != var_79->var_107));
              var_79 = var_79->pNext) {
          }
        }
        var_57 = var_24((int3)((type_15)var_80 >> 8),var_22 == (type_1 *)0x0);
        var_82 = var_24((int3)((type_15)psVar28 >> 8),0 < (int)var_76) & var_57;
        var_61._0_1_ = var_81(var_82,0);
        var_57 = var_24((int3)(var_82 >> 8),var_76 != (type_9 *)0x0) & var_57;
        var_94 = false;
        if (1 < var_41->nOp) {
          var_31 = 1;
          do {
            pOVar26 = (type_20 *)(var_36 + 0xc9455);
            if (var_41->var_107->mallocFailed == '\0') {
              pOVar26 = var_41->aOp + var_31;
            }
            if (pOVar26->opcode == 'm') {
              if (var_83 == (type_26 *)pOVar26->p3) {
                if (pOVar26->p2 == var_7->tnum) goto LAB_000f3b16;
                for (var_32 = var_7->pIndex; var_32 != (type_17 *)0x0; var_32 = var_32->pNext) {
                  if (pOVar26->p2 == var_32->tnum) goto LAB_000f3b16;
                }
              }
            }
            else if ((pOVar26->opcode == 0xa3) && ((type_21 *)(pOVar26->p4).i == var_79))
            goto LAB_000f3b16;
            var_31 = var_31 + 1;
          } while (var_41->nOp != var_31);
        }
      }
      else {
LAB_000f3b16:
        var_11 = pParse_00->nTab;
        pParse_00->nTab = var_11 + 1;
        var_44 = pParse_00->nTempReg;
        if (var_44 == '\0') {
          var_31 = pParse_00->nMem + 1;
          var_49 = var_31;
LAB_000f4ecb:
          var_38 = (type_13 *)(var_49 + 1);
          pParse_00->nMem = (int)var_38;
        }
        else {
          var_45 = var_44 - 1;
          pParse_00->nTempReg = var_45;
          var_31 = pParse_00->aTempReg[var_45];
          if (var_45 == 0) {
            var_49 = pParse_00->nMem;
            goto LAB_000f4ecb;
          }
          pParse_00->nTempReg = var_44 - 2;
          var_38 = (type_13 *)pParse_00->aTempReg[(type_6)(var_44 - 2)];
        }
        var_48(var_17,0x71,var_11,(int)var_76,(int)pTVar42);
        var_49 = var_48(var_17,0xe,dest.iSDParm,0,(int)pTVar42);
        p3 = var_31;
        var_48(var_17,0x66,var_37,(int)var_76,var_31);
        var_48(var_17,0x79,var_11,(int)var_38,p3);
        pTVar42 = var_38;
        var_48(var_17,0x7a,var_11,var_31,(int)var_38);
        var_48(var_17,0xb,0,var_49,(int)pTVar42);
        var_37 = var_17->nOp;
        psVar28 = var_17->var_107;
        if (var_49 < 0) {
          var_49 = var_37 + -1;
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (psVar28->mallocFailed == '\0') {
          psVar28 = (type_9 *)(var_49 * 3);
          pOVar26 = var_17->aOp + var_49;
        }
        pOVar26->p2 = var_37;
        if (var_31 != 0) {
          var_62(pParse_00,var_31);
          psVar28 = extraout_ECX;
          var_37 = extraout_EDX;
        }
        var_94 = true;
        var_57 = var_24((int3)((type_15)var_37 >> 8),var_22 == (type_1 *)0x0);
        var_82 = var_24((int3)((type_15)psVar28 >> 8),0 < (int)var_76) & var_57;
        var_61._0_1_ = var_81(var_82,0);
        var_57 = var_24((int3)(var_82 >> 8),var_76 != (type_9 *)0x0) & var_57;
        if (var_38 != (type_13 *)0x0) {
          var_62(pParse_00,(int)var_38);
        }
      }
LAB_000f3c52:
      if (var_61._0_1_ != false) {
        var_93 = (type_15)var_7->iPKey;
      }
    }
    var_31 = (int)var_7->nCol;
    if (var_31 < 1) {
      var_37 = 0;
    }
    else {
      var_37 = 0;
      var_84 = &var_7->aCol->colFlags;
      var_85 = var_84 + var_31 * 0x10;
      do {
        var_45 = *var_84;
        var_84 = var_84 + 0x10;
        var_37 = var_37 + ((int)(type_15)var_45 >> 1 & 1U);
      } while (var_85 != var_84);
    }
    if ((char)var_57 == '\0') {
      if ((var_22 == (type_1 *)0x0) || ((type_9 *)var_22->zErrMsg == var_76)) goto LAB_000f3caf;
      var_70(pParse_00,(char *)(var_36 + 0x6a7b3),var_76,(type_9 *)var_22->zErrMsg);
      var_65 = (type_18 *)0x0;
      goto LAB_000f3673;
    }
    if ((type_9 *)(var_31 - var_37) != var_76) {
      var_70(pParse_00,(char *)(var_36 + 0x77d19),pList,0,(type_9 *)(var_31 - var_37),
                      var_76);
      var_65 = (type_18 *)0x0;
      goto LAB_000f3673;
    }
LAB_000f3caf:
    var_61 = (type_13 *)0x0;
    if ((((var_107->flags & 0x80) != 0) && (pParse_00->nested == '\0')) &&
       (pParse_00->pTriggerTab == (type_13 *)0x0)) {
      var_61 = (type_13 *)(pParse_00->nMem + 1);
      pParse_00->nMem = (int)var_61;
      var_48(var_17,0x46,0,(int)var_61,(int)pTVar42);
    }
    var_63 = (type_18 *)0x0;
    if (var_86 == (type_3 *)0x0) {
      var_31 = 0;
      if (var_7->nModuleArg == 0) {
        var_31 = var_87
                           (pParse_00,var_7,0x6e,'\0',-1,(type_7 *)0x0,&iDataCur,&iIdxCur);
      }
      if ((var_107->mallocFailed != '\0') ||
         (var_63 = (type_18 *)
                      var_88(var_107,var_89(in_stack_fffffe78,in_stack_fffffe74)),
         var_63 == (type_18 *)0x0)) goto LAB_000f366b;
      var_32 = var_7->pIndex;
      if (0 < var_31) {
        var_37 = pParse_00->nMem;
        pAVar36 = var_63;
        do {
          pAVar22 = (type_18 *)(var_37 + 1);
          var_90 = &pAVar36->var_7;
          pParse_00->nMem = (int)pAVar22;
          pAVar36->pNext = pAVar22;
          var_37 = (int)&pAVar22->pNext + (type_15)var_32->nColumn;
          pParse_00->nMem = var_37;
          var_32 = var_32->pNext;
          pAVar36 = (type_18 *)var_90;
        } while ((type_13 **)(&var_63->pNext + var_31) != var_90);
      }
    }
    uVar10._4_4_ = var_103.pSrcList;
    uVar10._0_4_ = var_103.var_22;
    if (var_73 == (type_3 *)0x0) {
LAB_000f3d98:
      if (var_94) {
        var_31 = var_48(var_17,0x24,var_11,0,(int)pTVar42);
        var_117 = var_17->nOp;
      }
      else if (var_21 == (type_13 *)0x0) {
        var_117 = 0;
        var_31 = 0;
      }
      else {
        var_31 = var_48(var_17,0xe,dest.iSDParm,0,(int)pTVar42);
        var_117 = var_31;
      }
      var_38 = (type_13 *)(pParse_00->nLabel + -1);
      pParse_00->nLabel = (int)var_38;
      if (((type_6)tmask & 1) != 0) {
        pTVar25 = (type_13 *)var_91(pParse_00,var_7->nCol + 1);
        if ((int)var_93 < 0) {
          var_48(var_17,0x46,-1,(int)pTVar25,(int)pTVar42);
        }
        else {
          if (var_94) {
            pTVar42 = pTVar25;
            var_48(var_17,0x5a,var_11,var_93,(int)pTVar25);
          }
          else {
            var_92(pParse_00,(type_22 *)(&var_12->pPrev)[var_93 * 5],(int)pTVar25);
          }
          var_37 = var_48(var_17,0x33,(int)pTVar25,0,(int)pTVar42);
          var_48(var_17,0x46,-1,(int)pTVar25,(int)pTVar42);
          if (var_37 < 0) {
            var_37 = var_17->nOp + -1;
          }
          pOVar26 = (type_20 *)(var_36 + 0xc9455);
          if (var_17->var_107->mallocFailed == '\0') {
            pOVar26 = var_17->aOp + var_37;
          }
          pOVar26->p2 = var_17->nOp;
          var_48(var_17,0xf,(int)pTVar25,0,(int)pTVar42);
        }
        var_37 = (int)var_7->nCol;
        if (0 < var_7->nCol) {
          var_96 = (char *)0x0;
          bVar33 = (bool)((var_94 ^ 1U) & var_12 == (type_11 *)0x0);
          var_41 = (type_11 *)0x0;
          do {
            if (var_22 == (type_1 *)0x0) {
              if (bVar33) goto LAB_000f4c2c;
LAB_000f4c96:
              target = (type_13 *)((int)&pTVar25->zName + (int)((int)&var_41->var_107 + 1));
              if (var_94) {
                var_48(var_17,0x5a,var_11,(int)var_96,(int)target);
                pTVar42 = target;
              }
              else {
                var_95 = (&var_12->pPrev)[(int)var_96 * 5];
                p = pParse_00->pVdbe;
                var_92(pParse_00,(type_22 *)var_95,(int)target);
                var_37 = pParse_00->nMem + 1;
                pParse_00->nMem = var_37;
                var_48(p,0x4e,(int)target,var_37,(int)pTVar42);
                var_44 = *(type_7 *)&var_95->var_107;
                var_95->nCursor = var_37;
                *(type_7 *)&var_95->var_107 = 0xa4;
                *(type_7 *)&var_95->rc = var_44;
                var_95->pPrev = (type_11 *)((type_15)var_95->pPrev & 0xffffefff);
              }
            }
            else {
              if ((int)var_22->zErrMsg < 1) {
                var_96 = (char *)0x0;
              }
              else {
                var_96 = (char *)0x0;
                var_95 = var_22->var_107->pVdbe;
                while (var_41 != var_95) {
                  var_96 = var_96 + 1;
                  if (var_96 == var_22->zErrMsg) goto LAB_000f4c2c;
                  var_95 = (type_11 *)var_22->var_107->aLimit[(int)var_96 * 2 + -0x19];
                }
                if (!bVar33) goto LAB_000f4c96;
              }
LAB_000f4c2c:
              var_92(pParse_00,var_7->aCol[(int)var_41].pDflt,
                              (int)((int)&pTVar25->zName + (int)((int)&var_41->var_107 + 1)));
            }
            var_96 = var_96 + (var_22 == (type_1 *)0x0);
            var_41 = (type_11 *)((int)&var_41->var_107 + 1);
            var_37 = (int)var_7->nCol;
          } while ((int)var_41 < var_37);
        }
        if (var_86 == (type_3 *)0x0) {
          var_97(var_17,var_7,(int)((int)&pTVar25->zName + 1));
          var_37 = (int)var_7->nCol;
        }
        pTVar42 = var_38;
        var_98
                  (pParse_00,var_20,0x74,(type_10 *)0x0,1,var_7,
                   (int)((int)pTVar25 + (-1 - var_37)),(int)var_26,(int)var_38);
        var_37 = var_7->nCol + 1;
        if (var_37 == 1) {
          var_99(pParse_00,(int)pTVar25,nReg);
        }
        else if (pParse_00->nRangeReg < var_37) {
          pParse_00->nRangeReg = var_37;
          pParse_00->iRangeReg = (int)pTVar25;
        }
      }
      if (var_86 == (type_3 *)0x0) {
        if (var_7->nModuleArg != 0) {
          var_48(var_17,0x49,0,(int)var_30,(int)pTVar42);
        }
        if ((int)var_93 < 0) {
          var_41 = (type_11 *)(var_66 | var_7->nModuleArg);
          if (var_41 == (type_11 *)0x0) {
LAB_000f4a81:
            pTVar42 = local_118;
            var_48(var_17,0x79,iDataCur,(int)local_12c,(int)local_118);
            local_138 = 1;
          }
          else {
            var_48(var_17,0x49,0,(int)local_12c,(int)pTVar42);
            local_138 = 0;
          }
        }
        else {
          if (var_94) {
            pTVar42 = local_12c;
            var_48(var_17,0x5a,var_11,var_93,(int)local_12c);
          }
          else if (var_21 == (type_13 *)0x0) {
            if ((*(type_7 *)&(&var_12->pPrev)[var_93 * 5]->var_107 == 'n') &&
               (var_41 = var_12, var_7->nModuleArg == 0)) goto LAB_000f4a81;
            var_92(pParse_00,(type_22 *)(&var_12->pPrev)[var_93 * 5],(int)local_12c);
          }
          else {
            var_48(var_17,0x4e,(int)(var_47 + var_93),(int)local_12c,
                              (int)pTVar42);
          }
          if (var_7->nModuleArg == 0) {
            var_37 = var_48(var_17,0x33,(int)local_12c,0,(int)pTVar42);
            pTVar42 = local_118;
            var_48(var_17,0x79,iDataCur,(int)local_12c,(int)local_118);
            if (var_37 < 0) {
              var_37 = var_17->nOp + -1;
            }
            pOVar26 = (type_20 *)(var_36 + 0xc9455);
            if (var_17->var_107->mallocFailed == '\0') {
              pOVar26 = var_17->aOp + var_37;
            }
            pOVar26->p2 = var_17->nOp;
          }
          else {
            var_48(var_17,0x32,(int)local_12c,var_17->nOp + 2,(int)pTVar42);
          }
          var_48(var_17,0xf,(int)local_12c,0,(int)pTVar42);
          local_138 = 0;
          var_41 = var_17;
        }
        if (0 < (int)local_118) {
          var_48(pParse_00->pVdbe,0x97,(int)local_118,(int)local_12c,(int)pTVar42);
        }
        if (0 < var_7->nCol) {
          var_83 = (type_26 *)0x0;
          var_41 = (type_11 *)0x0;
          do {
            pTVar25 = (type_13 *)(var_100 + (int)var_41);
            if ((type_11 *)(int)var_7->iPKey == var_41) {
              var_48(var_17,0x4a,(int)pTVar25,0,(int)pTVar42);
            }
            else {
              if (var_22 == (type_1 *)0x0) {
                pCVar38 = var_7->aCol + (int)var_41;
                if ((pCVar38->colFlags & 2) == 0) {
                  var_96 = (char *)((int)var_41 - (int)var_83);
                  if ((-1 < (int)var_96) && (var_76 != (type_9 *)0x0)) goto LAB_000f47c2;
                }
                else {
                  var_83 = (type_26 *)((int)var_83 + 1);
                }
              }
              else {
                if (0 < (int)var_22->zErrMsg) {
                  var_96 = (char *)0x0;
                  var_95 = var_22->var_107->pVdbe;
                  while (var_95 != var_41) {
                    var_96 = var_96 + 1;
                    if (var_96 == var_22->zErrMsg) goto LAB_000f47ad;
                    var_95 = (type_11 *)var_22->var_107->aLimit[(int)var_96 * 2 + -0x19];
                  }
                  if (var_76 != (type_9 *)0x0) {
LAB_000f47c2:
                    if (var_94) {
                      var_48(var_17,0x5a,var_11,(int)var_96,(int)pTVar25);
                      pTVar42 = pTVar25;
                    }
                    else if (var_21 == (type_13 *)0x0) {
                      var_92(pParse_00,(type_22 *)(&var_12->pPrev)[(int)var_96 * 5],
                                      (int)pTVar25);
                    }
                    else if (var_47 != var_100) {
                      var_48(var_17,0x4f,(int)(var_96 + (int)var_47),(int)pTVar25,
                                        (int)pTVar42);
                    }
                    goto LAB_000f4756;
                  }
                }
LAB_000f47ad:
                pCVar38 = var_7->aCol + (int)var_41;
              }
              var_34 = pCVar38->pDflt;
              if (pParse_00->okConstFactor == '\0') {
LAB_000f474b:
                var_92(pParse_00,var_34,(int)pTVar25);
              }
              else {
                var_103.nErr = var_24(var_103.nErr._1_3_,2);
                var_103.ncFlags = 0;
                var_103._26_2_ = 0;
                var_103.pSrcList = (type_2 *)(var_36 + -0xadd67);
                var_103.uNC.pEList = (type_10 *)(var_36 + -0xb66d7);
                if (var_34 != (type_22 *)0x0) {
                  var_71((type_29 *)&var_103,var_34);
                  if ((char)var_103.nErr == '\0') goto LAB_000f474b;
                }
                var_101(pParse_00,var_34,(int)pTVar25);
              }
            }
LAB_000f4756:
            var_41 = (type_11 *)((int)&var_41->var_107 + 1);
          } while ((int)var_41 < (int)var_7->nCol);
        }
        if (var_7->nModuleArg == 0) {
          var_102
                    ((type_1 *)iDataCur,(type_13 *)iIdxCur,(int *)var_30,0,~var_93 >> 0x1f,
                     (type_15)var_26 & 0xff,(int)var_38,(type_7)&var_103,'\0',(int)var_73,(int *)var_41,
                     (int *)var_41,(type_5 *)in_stack_fffffe74);
          var_104(pParse_00,var_7,0,(int)var_30,(int *)0x0,0);
          if (var_103.var_22 == (type_1 *)0x0) {
            pTVar42 = (type_13 *)&DAT_00000001;
          }
          else {
            pTVar42 = (type_13 *)0x0;
            if ((var_20 == (type_14 *)0x0) &&
               (pTVar42 = (type_13 *)&DAT_00000001, (var_107->flags & 0x4000) != 0)) {
              pHVar24 = var_105(&var_7->pSchema->fkeyHash,var_7->zName,pHash);
              pTVar42 = (type_13 *)(type_15)(pHVar24->data == (void *)0x0);
            }
          }
          var_106
                    (pParse_00,var_7,iDataCur,iIdxCur,(int)var_30,(int *)var_63,0,local_138,
                     (int)pTVar42);
        }
        else {
          for (var_79 = var_7->pVTable; (var_79 != (type_21 *)0x0 && (var_107 != var_79->var_107));
              var_79 = var_79->pNext) {
          }
          var_108(pParse_00,var_7);
          var_37 = var_48(var_17,10,1,var_7->nCol + 2,(int)var_30);
          var_51(var_17,var_37,(char *)var_79,-0xc);
          var_72 = (type_24)var_26;
          if (var_26 == (type_2 *)0xb) {
            var_72 = 2;
          }
          if (0 < var_17->nOp) {
            var_17->aOp[var_17->nOp + -1].p5 = var_72;
          }
          pPVar23 = pParse_00->pToplevel;
          if (pParse_00->pToplevel == (type_1 *)0x0) {
            pPVar23 = pParse_00;
          }
          pPVar23->mayAbort = '\x01';
          pTVar42 = var_30;
        }
      }
      if (var_61 != (type_13 *)0x0) {
        var_48(var_17,0x53,(int)var_61,1,(int)pTVar42);
      }
      if (var_20 != (type_14 *)0x0) {
        pTVar42 = var_38;
        var_98
                  (pParse_00,var_20,0x74,(type_10 *)0x0,2,var_7,(int)local_110 - (int)var_7->nCol,
                   (int)var_26,(int)var_38);
      }
      var_109(var_17,(int)var_38);
      if (var_94) {
        var_48(var_17,5,var_11,var_117,(int)pTVar42);
        if (var_31 < 0) {
          var_31 = var_17->nOp + -1;
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (var_17->var_107->mallocFailed == '\0') {
          pOVar26 = var_17->aOp + var_31;
        }
        pOVar26->p2 = var_17->nOp;
        var_48(var_17,0x75,var_11,0,(int)pTVar42);
      }
      else if (var_21 != (type_13 *)0x0) {
        var_48(var_17,0xb,0,var_117,(int)pTVar42);
        if (var_31 < 0) {
          var_31 = var_17->nOp + -1;
        }
        pOVar26 = (type_20 *)(var_36 + 0xc9455);
        if (var_17->var_107->mallocFailed == '\0') {
          pOVar26 = var_17->aOp + var_31;
        }
        pOVar26->p2 = var_17->nOp;
      }
      if (((pParse_00->nested == '\0') && (pParse_00->pTriggerTab == (type_13 *)0x0)) &&
         (pParse_00->pAinc != (type_18 *)0x0)) {
        var_64(pParse_00);
      }
      var_65 = var_63;
      if (var_61 != (type_13 *)0x0) {
        var_48(var_17,0x51,(int)var_61,1,(int)pTVar42);
        var_110(var_17,1);
        if (var_17->var_107->mallocFailed == '\0') {
          var_111
                    (var_17,0,0,(char *)(var_36 + 0x6a7cc),(type_37 *)0x0);
        }
      }
      goto LAB_000f3673;
    }
    if (var_7->nModuleArg == 0) {
      pList->a[0].iCursor = iDataCur;
      var_73->selId = (type_38)pList;
      var_73->addrOpenEphm[1] = iDataCur;
      var_73->addrOpenEphm[0] = (int)var_100;
      var_112 = var_73->pEList;
      var_73->var_53 = (type_2 *)iIdxCur;
      var_103._0_8_ = uVar10;
      if (var_112 != (type_10 *)0x0) {
        var_57 = 0;
        do {
          *(type_23 *)((int)var_115 + (var_57 - 0x18)) = 0;
          var_57 = var_57 + 4;
        } while (var_57 < 0x18);
        var_103._0_8_ = uVar50;
        if (0 < var_112->nExpr) {
          var_114 = var_112->a;
          var_31 = 0;
          do {
            var_37 = var_113(&var_103,var_114->pExpr);
            if (var_37 != 0) goto LAB_000f3d98;
            var_31 = var_31 + 1;
            var_114 = var_114 + 1;
          } while (var_31 < var_112->nExpr);
        }
        var_31 = var_113(&var_103,*(type_22 **)&var_73->op);
        if (var_31 == 0) {
          var_38 = pList->a[0].var_7;
          var_112 = var_73->pEList;
          var_31 = pList->a[0].iCursor;
          if ((((var_38->tabFlags & 0x20) != 0) || (var_112->nExpr != 1)) ||
             ((var_34 = var_112->a[0].pExpr, var_34->op != 0x9e || (var_34->iColumn != -1)))) {
            var_34 = var_115;
            for (var_37 = 0x1c; var_37 != 0; var_37 = var_37 + -1) {
              var_34->op = '\0';
              var_34->affinity = '\0';
              *(type_39 *)&var_34->field_0x2 = 0;
              var_34 = (type_22 *)((int)var_34 + (type_15)bVar49 * -8 + 4);
            }
            var_115[1].op = 0x9e;
            var_115[0].op = 'f';
            var_34 = (type_22 *)0x0;
            var_115[1].iTable = var_31;
            var_115[0].pLeft = var_115 + 1;
            for (var_32 = var_38->pIndex; var_32 != (type_17 *)0x0; var_32 = var_32->pNext) {
              if ((var_32->onError != '\0') &&
                 (var_57 = (type_15)var_32->nKeyCol, var_112->nExpr == var_57)) {
                var_34 = var_32->pPartIdxWhere;
                if (var_34 == (type_22 *)0x0) {
LAB_000f502a:
                  if (var_57 == 0) {
LAB_000f50dd:
                    var_73->iOffset = (int)var_32;
                    goto LAB_000f3d98;
                  }
                  var_82 = 0;
                  while( true ) {
                    var_115[0].u = *(type_40 *)(var_32->azColl + var_82);
                    if (var_32->aiColumn[var_82] == -2) {
                      var_34 = var_32->aColExpr->a[var_82].pExpr;
                      pB = var_34;
                      if (var_34->op != 'f') {
                        pB = var_115;
                        var_115[0].pLeft = var_34;
                      }
                    }
                    else {
                      var_115[1].iColumn = (type_41)var_32->aiColumn[var_82];
                      pB = var_115;
                      var_115[0].pLeft = var_115 + 1;
                    }
                    var_117 = 0;
                    var_83 = var_112->a;
                    while( true ) {
                      var_37 = var_116(pParse_00,var_83->pExpr,pB,var_31);
                      var_34 = extraout_ECX_01;
                      if (var_37 < 2) break;
                      var_117 = var_117 + 1;
                      var_83 = var_83 + 1;
                      if (var_57 == var_117) goto LAB_000f4fe0;
                    }
                    if ((int)var_57 <= (int)var_117) break;
                    var_82 = var_82 + 1;
                    if (var_57 == var_82) goto LAB_000f50dd;
                  }
                }
                else if (*(type_22 **)&var_73->op != (type_22 *)0x0) {
                  var_37 = var_116(pParse_00,*(type_22 **)&var_73->op,var_34,var_31);
                  var_34 = extraout_ECX_00;
                  if (var_37 == 0) {
                    var_57 = (type_15)var_32->nKeyCol;
                    goto LAB_000f502a;
                  }
                }
              }
LAB_000f4fe0:
            }
            pTVar42 = (type_13 *)(var_36 + 0x77d7d);
            var_70(pParse_00,(char *)pTVar42,var_34,var_34);
          }
        }
      }
      goto LAB_000f3d98;
    }
    var_70(pParse_00,&UNK_00077d4d + var_36,var_7->zName,var_57);
    var_8(var_107,pList);
    var_65 = var_63;
    if (var_12 != (type_11 *)0x0) goto LAB_000f3688;
  }
  else {
    var_8(var_107,pList);
    var_65 = (type_18 *)0x0;
LAB_000f36a8:
    if (var_73 == (type_3 *)0x0) goto LAB_000f370c;
  }
LAB_000f36b0:
  if (var_73->pEList != (type_10 *)0x0) {
    var_13(var_107,var_73->pEList);
  }
  if (*(type_22 **)&var_73->op != (type_22 *)0x0) {
    var_118(var_107,*(type_22 **)&var_73->op);
  }
  if ((type_10 *)var_73->selFlags != (type_10 *)0x0) {
    var_13(var_107,(type_10 *)var_73->selFlags);
  }
  if ((type_22 *)var_73->iLimit != (type_22 *)0x0) {
    var_118(var_107,(type_22 *)var_73->iLimit);
  }
  var_119(var_107,var_73);
LAB_000f370c:
  if (var_21 != (type_13 *)0x0) {
    var_5(var_107,(type_3 *)var_21,1);
  }
  if (var_22 != (type_1 *)0x0) {
    var_74(var_107,(type_4 *)var_22);
  }
  if (var_65 != (type_18 *)0x0) {
    var_119(var_107,var_65);
  }
LAB_000f374a:
  if (var_120 == *(int *)(var_3 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_121();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) 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: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (primitive_type) 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: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) 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 (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: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (pointer_expression argument: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (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))))) (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)))) (goto_statement label: (statement_identifier)))) (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))))) (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 (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: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))))))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (number_literal))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))))) 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: (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)))))))))))))))))))) consequence: (goto_statement label: (statement_identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (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: (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: (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))))))) (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: (identifier) right: (number_literal))) consequence: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (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: (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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence))))))))) consequence: (goto_statement label: (statement_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: (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: (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 (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (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: (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: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (for_statement initializer: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (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)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (identifier) right: (number_literal))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_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))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (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))))))) (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: (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: (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))) (expression_statement (assignment_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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (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: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (labeled_statement label: (statement_identifier) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) 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: (pointer_expression argument: (identifier)))) (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: (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: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (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))))) (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 (identifier))))) (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (expression_statement (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: (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)))) (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: (identifier)) right: (number_literal))))) 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: (binary_expression left: (identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (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 (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) 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: (call_expression function: (identifier) arguments: (argument_list (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) 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))))))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) 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: (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: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) 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: (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: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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 (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) 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: (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: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (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: (number_literal)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_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: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) 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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal)) right: (number_literal))) right: (number_literal)))) (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (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: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (do_statement body: (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: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier)) right: (identifier))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (identifier))))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_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: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (number_literal))) (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: (number_literal))))) alternative: (else_clause (compound_statement (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)))) consequence: (compound_statement (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (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: (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: (identifier))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (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: (identifier))) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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)))))))) (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: (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: (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: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (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: (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))))) (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: (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))) (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))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_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: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (number_literal)))) (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: (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: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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 (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (binary_expression left: (identifier) right: (number_literal)))))) (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: (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: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) condition: (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 (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))) (binary_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: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (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)))) (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (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: (pointer_expression argument: (identifier)) right: (number_literal))))) 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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (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 (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: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (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)))))) 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: (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))))))) consequence: (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier))) (labeled_statement label: (statement_identifier) (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: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (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 (assignment_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: (binary_expression left: (identifier) 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))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))) (binary_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: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (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)))) (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (false))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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 (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (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: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (identifier) (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 (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (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))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (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)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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 (number_literal) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (pointer_expression argument: (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: (char_literal (escape_sequence)))) 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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (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: (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 (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) 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 (number_literal))))) (expression_statement (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 (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)))) (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: (identifier)) right: (number_literal))))) 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: (binary_expression left: (identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (binary_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))) (do_statement body: (compound_statement (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 (identifier)) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (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: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (identifier) right: (subscript_expression argument: (identifier) index: (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: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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 (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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 (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) alternative: (else_clause (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (char_literal (character)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (if_statement condition: (parenthesized_expression (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 (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (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: (identifier)) right: (number_literal))))) 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: (binary_expression left: (identifier) 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: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) consequence: (compound_statement (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: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) alternative: (else_clause (compound_statement (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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (identifier) right: (subscript_expression argument: (identifier) index: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) alternative: (else_clause (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)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_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: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (true)) right: (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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) (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (for_statement initializer: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) condition: (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 (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) body: (compound_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (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: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) 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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) 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: (pointer_expression argument: (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))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (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 (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)))) (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: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) alternative: (else_clause (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 (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (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: (identifier)) right: (number_literal))))) 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: (binary_expression left: (identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (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: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))) (do_statement body: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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: (pointer_expression argument: (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: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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: (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: (type_identifier) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) 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: (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: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (for_statement initializer: (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)))))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (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)))))) body: (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: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) 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: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (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: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (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: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (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 (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (break_statement)) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (break_statement)) (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)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))))))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (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)))) alternative: (else_clause (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: (number_literal)))) (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: (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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 (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 (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))))) (labeled_statement label: (statement_identifier) (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 (return_statement)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (MISSING "}"))))

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

{
  byte bVar1;
  char cVar2;
  undefined1 uVar3;
  short sVar4;
  ushort uVar5;
  uint uVar6;
  undefined1 *puVar7;
  uint *puVar8;
  undefined4 uVar9;
  bool bVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  undefined4 *puVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  byte *pbVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int *extraout_ECX;
  int extraout_ECX_00;
  uint uVar27;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  undefined4 extraout_ECX_04;
  undefined4 extraout_ECX_05;
  int extraout_ECX_06;
  undefined2 uVar28;
  byte *pbVar29;
  int extraout_EDX;
  int *piVar30;
  int *piVar31;
  char *pcVar32;
  ushort uVar33;
  int *piVar34;
  uint uVar35;
  undefined4 *puVar36;
  int unaff_EDI;
  int *piVar37;
  undefined4 *puVar38;
  int in_GS_OFFSET;
  bool bVar39;
  byte bVar40;
  undefined8 uVar41;
  undefined8 uVar42;
  int *local_17c;
  byte *local_174;
  uint local_170;
  uint local_16c;
  int *local_168;
  uint local_160;
  int *local_158;
  uint local_14c;
  int *local_148;
  int *local_144;
  uint local_140;
  undefined4 local_138;
  int local_134;
  uint local_130;
  int local_12c;
  int local_118;
  int local_110;
  int local_f0;
  int local_ec;
  byte local_e8 [4];
  undefined1 local_e4;
  int local_e0;
  int local_dc;
  int local_d8;
  undefined4 local_d4;
  int *local_cc;
  int local_c8;
  int local_c4;
  undefined4 local_c0;
  undefined8 *local_b4;
  undefined8 local_b0;
  int local_a8 [3];
  int local_9c;
  uint local_98;
  undefined1 local_90 [8];
  undefined4 local_88;
  int *local_84;
  undefined1 local_58 [28];
  undefined4 local_3c;
  int local_38;
  int local_20;
  
  bVar40 = 0;
  uVar41 = FUN_0003a401();
  iVar23 = (int)((ulonglong)uVar41 >> 0x20);
  piVar11 = (int *)uVar41;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar26 = *piVar11;
  local_f0 = 0;
  local_ec = 0;
  local_158 = extraout_ECX;
  if ((piVar11[9] == 0) && (*(char *)(iVar26 + 0x4d) == '\0')) {
    local_e0 = 0;
    if (((extraout_ECX != (int *)0x0) && ((*(byte *)((int)extraout_ECX + 9) & 2) != 0)) &&
       (extraout_ECX[0xd] == 0)) {
      local_148 = (int *)*extraout_ECX;
      *extraout_ECX = 0;
      FUN_00063a90();
      piVar12 = (int *)FUN_000ed210();
      local_158 = piVar12;
      if (piVar12 != (int *)0x0) {
        local_158 = (int *)0x0;
        goto LAB_000f3620;
      }
      goto LAB_000f366b;
    }
    piVar12 = (int *)FUN_000ed210();
    if (piVar12 == (int *)0x0) {
      FUN_000638a0();
      local_17c = (int *)0x0;
      goto LAB_000f36a8;
    }
    local_148 = (int *)0x0;
LAB_000f3620:
    if (piVar12[0x12] == 0) {
      iVar13 = -16000000;
      local_134 = -1000000;
    }
    else {
      local_134 = FUN_00046080();
      iVar13 = local_134 << 4;
    }
    iVar13 = FUN_00088da0(0,*(undefined4 *)(*(int *)(iVar26 + 0x10) + iVar13));
    if (iVar13 != 0) {
LAB_000f366b:
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
LAB_000f3673:
      FUN_000638a0();
      if (local_148 != (int *)0x0) {
LAB_000f3688:
        FUN_00063e30();
      }
      goto LAB_000f36a8;
    }
    uVar6 = piVar12[9];
    iVar14 = FUN_00049a60(0,local_e8);
    iVar13 = piVar12[3];
    iVar15 = FUN_000d9b60();
    if (((iVar15 != 0) || (iVar15 = FUN_0008b7b0(), iVar15 != 0)) ||
       ((local_144 = (int *)piVar11[2], local_144 == (int *)0x0 &&
        (local_144 = (int *)FUN_00073350(), local_144 == (int *)0x0)))) goto LAB_000f366b;
    if (*(char *)((int)piVar11 + 0x12) == '\0') {
      *(byte *)((int)local_144 + 0x8d) = *(byte *)((int)local_144 + 0x8d) | 0x20;
    }
    FUN_000bcbf0();
    if (((param_1 == (int *)0x0) && (local_158 != (int *)0x0)) &&
       ((piVar11[0x41] == 0 && (local_158[0x10] == 0)))) {
      iVar15 = *piVar11;
      iVar16 = FUN_000460a0();
      if ((iVar16 != 0) || (piVar12[0xe] != 0)) goto LAB_000f380e;
      local_14c = param_2;
      if ((param_2 == 0xb) &&
         ((local_14c = 2, -1 < (short)piVar12[10] &&
          (local_14c = (uint)*(byte *)(piVar12 + 0xc), local_14c == 0xb)))) {
        local_14c = 2;
      }
      if ((((((*(int *)local_158[8] != 1) || (((int *)local_158[8])[7] != 0)) || (local_158[9] != 0)
            ) || (((local_158[0xc] != 0 || (local_158[10] != 0)) ||
                  ((local_158[0xf] != 0 ||
                   ((local_158[0xd] != 0 || ((*(byte *)(local_158 + 2) & 1) != 0)))))))) ||
          ((*(int *)*local_158 != 1 ||
           ((*(char *)((int *)*local_158)[1] != -0x58 ||
            (puVar17 = (undefined4 *)FUN_000eb150(), puVar17 == (undefined4 *)0x0)))))) ||
         (((puVar17[7] == piVar12[7] && (puVar17[0x12] == piVar12[0x12])) ||
          (((((((byte)((uint)piVar12[9] >> 5) ^ 1) & 1) != (((byte)((uint)puVar17[9] >> 5) ^ 1) & 1)
             || (puVar17[0xe] != 0)) || (puVar17[3] != 0)) ||
           ((sVar4 = *(short *)((int)piVar12 + 0x2a), sVar4 != *(short *)((int)puVar17 + 0x2a) ||
            (uVar35 = (uint)*(ushort *)(puVar17 + 10),
            *(ushort *)(piVar12 + 10) != *(ushort *)(puVar17 + 10))))))))) goto LAB_000f380e;
      for (iVar16 = 0; iVar16 < sVar4; iVar16 = iVar16 + 1) {
        iVar18 = piVar12[1] + iVar16 * 0x10;
        uVar27 = iVar16 * 0x10 + puVar17[1];
        if (*(char *)(iVar18 + 0xd) != *(char *)(uVar27 + 0xd)) goto LAB_000f380e;
        iVar22 = *(int *)(uVar27 + 8);
        if (*(int *)(iVar18 + 8) != 0) {
          if (iVar22 == 0) goto LAB_000f380e;
          iVar22 = FUN_000446c0();
        }
        if ((iVar22 != 0) ||
           ((*(char *)(iVar18 + 0xc) != '\0' && (*(char *)(uVar27 + 0xc) == '\0'))))
        goto LAB_000f380e;
        uVar35 = uVar27;
        if (0 < iVar16) {
          iVar18 = *(int *)(iVar18 + 4);
          if (((iVar18 == 0) != (*(int *)(uVar27 + 4) == 0)) ||
             ((uVar35 = CONCAT31((int3)(uVar27 >> 8),iVar18 == 0), iVar18 != 0 &&
              (iVar18 = strcmp(*(char **)(iVar18 + 8),*(char **)(*(int *)(uVar27 + 4) + 8)),
              uVar35 = unaff_EDI + 0xc78c1, iVar18 != 0)))) goto LAB_000f380e;
        }
      }
      local_170 = 0;
      for (iVar16 = piVar12[2]; iVar16 != 0; iVar16 = *(int *)(iVar16 + 0x14)) {
        uVar35 = puVar17[2];
        if (*(char *)(iVar16 + 0x36) != '\0') {
          local_170 = 1;
        }
        while( true ) {
          if (uVar35 == 0) goto LAB_000f380e;
          if (((*(short *)(iVar16 + 0x32) == *(short *)(uVar35 + 0x32)) &&
              (*(char *)(iVar16 + 0x36) == *(char *)(uVar35 + 0x36))) &&
             (iVar18 = FUN_00087c20(), iVar18 != 0)) break;
          uVar35 = *(uint *)(uVar35 + 0x14);
        }
      }
      if ((((piVar12[6] != 0) && (iVar16 = FUN_000879d0(), iVar16 != 0)) ||
          (((*(uint *)(iVar15 + 0x1c) & 0x4000) != 0 && (piVar12[4] != 0)))) ||
         ((*(uint *)(iVar15 + 0x1c) & 0x80) != 0)) goto LAB_000f380e;
      if (puVar17[0x12] == 0) {
        local_140 = 0xfff0bdc0;
      }
      else {
        local_140 = FUN_00046080();
      }
      piVar34 = (int *)piVar11[2];
      if (piVar34 == (int *)0x0) {
        piVar34 = (int *)FUN_00073350();
      }
      FUN_000bca90();
      local_12c = 0;
      piVar11[10] = piVar11[10] + 2;
      if ((*(byte *)(piVar12 + 9) & 8) != 0) {
        local_12c = FUN_00055fd0();
      }
      cVar2 = *(char *)((int)piVar11 + 0x13);
      if (cVar2 == '\0') {
        local_168 = (int *)(piVar11[0xb] + 1);
        piVar11[0xb] = (int)local_168;
LAB_000f592a:
        uVar35 = piVar11[0xb] + 1;
        piVar11[0xb] = uVar35;
        local_16c = uVar35;
      }
      else {
        bVar1 = cVar2 - 1;
        *(byte *)((int)piVar11 + 0x13) = bVar1;
        local_168 = (int *)piVar11[bVar1 + 0x24];
        if (bVar1 == 0) goto LAB_000f592a;
        *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;
        local_16c = piVar11[(byte)(cVar2 - 2U) + 0x24];
      }
      FUN_00090f40(piVar12,0x6e,uVar35,uVar35);
      iVar16 = extraout_ECX_03;
      if ((*(byte *)(iVar15 + 0x18) & 4) == 0) {
        if ((((short)piVar12[10] < 0) && (piVar12[2] != 0)) ||
           ((local_170 != 0 || (1 < local_14c - 1)))) {
          uVar35 = FUN_00073150(0);
          local_170 = FUN_00073150(0);
          if ((int)uVar35 < 0) {
            uVar35 = piVar34[0x1a] - 1;
          }
          iVar16 = *piVar34;
          iVar18 = unaff_EDI + 0xc9455;
          if (*(char *)(iVar16 + 0x4d) == '\0') {
            uVar35 = uVar35 * 0x18;
            iVar18 = piVar34[0x19] + uVar35;
          }
          *(int *)(iVar18 + 8) = piVar34[0x1a];
        }
      }
      else {
        local_170 = 0;
      }
      if ((*(byte *)(puVar17 + 9) & 0x20) == 0) {
        FUN_00090f40(puVar17,0x6d,iVar16,iVar16);
        local_130 = FUN_00073150(0);
        if ((short)piVar12[10] < 0) {
          if (piVar12[2] == 0) {
            iVar22 = FUN_00073150(local_16c);
            iVar18 = iVar22;
          }
          else {
            iVar22 = FUN_00073150(local_16c);
            iVar18 = iVar22;
          }
        }
        else {
          iVar18 = FUN_00073150(local_16c);
          iVar16 = FUN_00072f80(0,local_16c);
          FUN_00086c60();
          if (iVar16 < 0) {
            iVar16 = piVar34[0x1a] + -1;
          }
          iVar22 = unaff_EDI + 0xc9455;
          if (*(char *)(*piVar34 + 0x4d) == '\0') {
            iVar22 = piVar34[0x19] + iVar16 * 0x18;
          }
          *(int *)(iVar22 + 8) = piVar34[0x1a];
          if (0 < local_12c) {
            iVar22 = FUN_00073150(local_16c);
          }
        }
        uVar28 = 0x29;
        FUN_00072f80(local_168,1,iVar22,iVar22);
        iVar16 = iVar15;
        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {
          uVar28 = 0x39;
          iVar16 = FUN_00073150(0);
        }
        FUN_00072f80(local_168,local_16c,iVar16,iVar16);
        FUN_00062750(0xfffffffa);
        if (0 < piVar34[0x1a]) {
          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar28;
        }
        FUN_00073150(iVar18);
        FUN_00073150(0);
        FUN_00073150(0);
      }
      else {
        FUN_00072d00(1,*piVar12,uVar35,uVar35);
        FUN_00072d00(0,*puVar17);
        local_130 = 0;
      }
      for (puVar38 = (undefined4 *)piVar12[2]; puVar38 != (undefined4 *)0x0;
          puVar38 = (undefined4 *)puVar38[5]) {
        puVar36 = (undefined4 *)puVar17[2];
        while( true ) {
          if (puVar36 == (undefined4 *)0x0) {
            FUN_000157bf();
            return;
          }
          if (((*(short *)((int)puVar38 + 0x32) == *(short *)((int)puVar36 + 0x32)) &&
              (*(char *)((int)puVar38 + 0x36) == *(char *)((int)puVar36 + 0x36))) &&
             (iVar16 = FUN_00087c20(), iVar16 != 0)) break;
          puVar36 = (undefined4 *)puVar36[5];
        }
        FUN_00072f80(puVar36[0xb],local_140,extraout_ECX_04,extraout_ECX_04);
        FUN_00090ee0();
        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar36);
        FUN_00072f80(puVar38[0xb],local_134);
        FUN_00090ee0();
        if (0 < piVar34[0x1a]) {
          *(undefined2 *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = 1;
        }
        FUN_0007e240(piVar34,&UNK_00067fba + unaff_EDI,*puVar38,extraout_ECX_05);
        local_14c = FUN_00073150(0);
        uVar33 = 0;
        FUN_00072f80(local_168,1);
        if ((*(byte *)(iVar15 + 0x18) & 4) != 0) {
          uVar5 = *(ushort *)(puVar36 + 0xd);
          for (uVar35 = 0; (int)uVar35 < (int)(uint)uVar5; uVar35 = uVar35 + 1) {
            if ((*(int *)(puVar36[8] + uVar35 * 4) == 0) || (iVar16 = FUN_000446c0(), iVar16 != 0))
            {
              uVar33 = 0;
              goto LAB_000f55d2;
            }
          }
          uVar33 = 0;
          if (uVar35 == uVar5) {
            uVar33 = 0x10;
            FUN_00073150(0);
          }
        }
LAB_000f55d2:
        if (((*(byte *)(puVar17 + 9) & 0x20) != 0) && ((*(byte *)((int)puVar38 + 0x37) & 3) == 2)) {
          uVar33 = uVar33 | 1;
        }
        FUN_00073150(local_168);
        if (0 < piVar34[0x1a]) {
          *(ushort *)(piVar34[0x1a] * 0x18 + piVar34[0x19] + -0x16) = uVar33 | 8;
        }
        FUN_00073150(local_14c + 1);
        if ((int)local_14c < 0) {
          local_14c = piVar34[0x1a] + -1;
        }
        iVar16 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar16 = local_14c * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar16 + 8) = piVar34[0x1a];
        FUN_00073150(0);
        FUN_00073150(0);
      }
      if (local_130 != 0) {
        if ((int)local_130 < 0) {
          local_130 = piVar34[0x1a] + -1;
        }
        iVar15 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar15 = local_130 * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar15 + 8) = piVar34[0x1a];
      }
      if (local_16c != 0) {
        FUN_00045e10();
      }
      if (local_168 != (int *)0x0) {
        FUN_00045e10();
      }
      if (local_170 != 0) {
        if (piVar11[0x1c] != 0) {
          FUN_000916b0();
        }
        FUN_00073150(0);
        if ((int)local_170 < 0) {
          local_170 = piVar34[0x1a] + -1;
        }
        iVar15 = unaff_EDI + 0xc9455;
        if (*(char *)(*piVar34 + 0x4d) == '\0') {
          iVar15 = local_170 * 0x18 + piVar34[0x19];
        }
        *(int *)(iVar15 + 8) = piVar34[0x1a];
        FUN_00073150(0);
        goto LAB_000f380e;
      }
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      if (((*(char *)((int)piVar11 + 0x12) == '\0') &&
          (local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0), piVar11[0x1e] == 0)) &&
         (local_17c = (int *)piVar11[0x1c], local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0),
         local_17c != (int *)0x0)) {
        FUN_000916b0();
        local_17c = (int *)0x0;
      }
      goto LAB_000f3673;
    }
LAB_000f380e:
    local_118 = 0;
    if ((*(byte *)(piVar12 + 9) & 8) != 0) {
      local_118 = FUN_00055fd0();
    }
    local_110 = piVar11[0xb];
    iVar16 = local_110 + 1 + (int)*(short *)((int)piVar12 + 0x2a);
    iVar15 = local_110 + 1;
    piVar11[0xb] = iVar16;
    local_12c = iVar15;
    if (piVar12[0xe] != 0) {
      local_12c = local_110 + 2;
      piVar11[0xb] = iVar16 + 1;
      local_110 = iVar15;
    }
    local_130 = ((uint)piVar12[9] >> 7 & 0xff ^ 1) & 0xffffff01;
    if ((param_1 == (int *)0x0) || (param_1[1] < 1)) {
LAB_000f4012:
      local_140 = 0xffffffff;
    }
    else {
      iVar16 = 0;
      do {
        *(undefined4 *)(*param_1 + 4 + iVar16 * 8) = 0xffffffff;
        iVar16 = iVar16 + 1;
      } while (iVar16 < param_1[1]);
      if (param_1[1] < 1) goto LAB_000f4012;
      local_14c = 0;
      local_140 = 0xffffffff;
      local_170 = (uint)*(short *)((int)piVar12 + 0x2a);
      do {
        puVar17 = (undefined4 *)(local_14c * 8 + *param_1);
        local_174 = (byte *)*puVar17;
        if (0 < (int)local_170) {
          uVar35 = 0;
          do {
            pbVar21 = *(byte **)(piVar12[1] + uVar35 * 0x10);
            pbVar29 = local_174;
            bVar1 = *local_174;
            if ((&UNK_00076279)[(uint)*pbVar21 + unaff_EDI] ==
                (&UNK_00076279)[(uint)*local_174 + unaff_EDI]) {
              do {
                if (bVar1 == 0) {
                  puVar17[1] = uVar35;
                  if (uVar35 != local_14c) {
                    local_130._0_1_ = 0;
                  }
                  local_130 = (uint)(byte)local_130;
                  if ((int)(short)piVar12[10] == uVar35) {
                    local_140 = local_14c;
                  }
                  local_170 = (uint)*(short *)((int)piVar12 + 0x2a);
                  if ((int)uVar35 < (int)local_170) goto LAB_000f39c8;
                  local_174 = *(byte **)(*param_1 + local_14c * 8);
                  goto LAB_000f399e;
                }
                pbVar21 = pbVar21 + 1;
                pbVar29 = pbVar29 + 1;
                bVar1 = *pbVar29;
              } while ((&UNK_00076279)[(uint)bVar1 + unaff_EDI] ==
                       (&UNK_00076279)[(uint)*pbVar21 + unaff_EDI]);
            }
            uVar35 = uVar35 + 1;
          } while (uVar35 != local_170);
        }
LAB_000f399e:
        iVar16 = FUN_00045bc0();
        if ((iVar16 == 0) || ((uVar6 & 0x20) != 0)) {
          FUN_000886b0(piVar11,unaff_EDI + 0x77cf9,iVar23,0,local_174);
          *(undefined1 *)((int)piVar11 + 0x11) = 1;
          local_17c = (int *)0x0;
          local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
          goto LAB_000f3673;
        }
        local_130 = 0;
        local_140 = local_14c;
LAB_000f39c8:
        local_14c = local_14c + 1;
      } while ((int)local_14c < param_1[1]);
    }
    iVar16 = local_12c + 1;
    if (local_158 == (int *)0x0) {
      uVar35 = 0;
      do {
        *(undefined4 *)((int)local_a8 + (uVar35 - 4)) = 0;
        uVar35 = uVar35 + 4;
      } while (uVar35 < 0x1c);
      bVar10 = false;
      local_b0._0_4_ = piVar11;
      if (local_148 == (int *)0x0) {
        local_170 = 0;
        uVar35 = 0;
        local_174 = (byte *)0x0;
      }
      else {
        iVar18 = 0;
        local_174 = (byte *)*local_148;
        piVar34 = local_148 + 1;
        if (0 < (int)local_174) {
          do {
            iVar22 = *piVar34;
            if (iVar22 != 0) {
              uVar33 = (ushort)local_98;
              local_b4 = &local_b0;
              local_c0 = 0;
              local_98 = local_98 & 0xffff6fef;
              local_cc = (int *)local_b0;
              iVar24 = *(int *)(iVar22 + 0x18) + ((int *)local_b0)[0x33];
              ((int *)local_b0)[0x33] = iVar24;
              local_c8 = unaff_EDI + -0x50327;
              local_c4 = unaff_EDI + -0x606a7;
              if (*(int *)(*(int *)local_b0 + 0x74) < iVar24) {
                FUN_000886b0((int *)local_b0,&UNK_000768cd + unaff_EDI,
                             *(int *)(*(int *)local_b0 + 0x74));
              }
              else {
                FUN_0005c830();
                local_cc[0x33] = local_cc[0x33] - *(int *)(iVar22 + 0x18);
                if ((local_98 & 0x10) != 0) {
                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 2;
                }
                if ((short)(ushort)local_98 < 0) {
                  *(uint *)(iVar22 + 4) = *(uint *)(iVar22 + 4) | 0x8000000;
                }
                local_98 = CONCAT22(local_98._2_2_,uVar33 & 0x9010 | (ushort)local_98);
                if ((local_9c < 1) && (local_cc[9] < 1)) goto LAB_000f41e7;
              }
              FUN_000638a0();
              FUN_00063e30();
              local_17c = (int *)0x0;
              if (param_3 != (int *)0x0) goto LAB_000f36b0;
              if (param_1 != (int *)0x0) {
                FUN_0005b000();
              }
              goto LAB_000f374a;
            }
LAB_000f41e7:
            iVar18 = iVar18 + 1;
            piVar34 = piVar34 + 5;
          } while (iVar18 < *local_148);
          local_170 = 0;
          local_16c._0_1_ = param_1 == (int *)0x0;
          uVar35 = (uint)local_16c._0_1_;
          goto LAB_000f3c52;
        }
        local_170 = 0;
        uVar35 = (uint)(param_1 == (int *)0x0 && local_174 != (byte *)0x0);
      }
    }
    else {
      iVar18 = piVar11[0xb];
      piVar11[0xb] = iVar18 + 1;
      iVar22 = local_144[0x1a];
      FUN_00072f80(0,iVar22 + 1);
      local_e4 = 0xd;
      local_d4 = 0;
      local_dc = 0;
      if ((byte)local_130 != '\0') {
        local_dc = iVar16;
      }
      local_d8 = (int)*(short *)((int)piVar12 + 0x2a);
      local_e0 = iVar18 + 1;
      iVar18 = FUN_000c4410();
      if (((iVar18 != 0) || (*(char *)(iVar26 + 0x4d) != '\0')) || (piVar11[9] != 0))
      goto LAB_000f366b;
      local_170 = local_dc;
      FUN_00073150(0);
      *(undefined1 *)(local_144[3] + 0x13) = 0;
      *(undefined4 *)(local_144[3] + 0x1c) = 0;
      iVar18 = local_144[0x1a];
      iVar24 = *local_144;
      if (iVar22 < 0) {
        iVar22 = iVar18 + -1;
      }
      iVar25 = unaff_EDI + 0xc9455;
      if (*(char *)(iVar24 + 0x4d) == '\0') {
        iVar24 = iVar22 * 3;
        iVar25 = local_144[0x19] + iVar22 * 0x18;
      }
      *(int *)(iVar25 + 8) = iVar18;
      local_174 = *(byte **)*local_158;
      if (iVar14 == 0) {
        uVar42 = CONCAT44(iVar18,piVar11[2]);
        if (piVar11[2] == 0) {
          uVar42 = FUN_00073350();
          iVar24 = extraout_ECX_06;
        }
        iVar18 = (int)((ulonglong)uVar42 >> 0x20);
        piVar37 = (int *)uVar42;
        piVar34 = (int *)0x0;
        if (piVar12[0xe] != 0) {
          iVar18 = *piVar11;
          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar18 != *piVar34));
              piVar34 = (int *)piVar34[6]) {
          }
        }
        uVar35 = CONCAT31((int3)((uint)iVar18 >> 8),param_1 == (int *)0x0);
        uVar27 = CONCAT31((int3)((uint)iVar24 >> 8),0 < (int)local_174) & uVar35;
        local_16c._0_1_ = SUB41(uVar27,0);
        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;
        bVar10 = false;
        if (1 < piVar37[0x1a]) {
          iVar18 = 1;
          do {
            pcVar32 = (char *)(unaff_EDI + 0xc9455);
            if (*(char *)(*piVar37 + 0x4d) == '\0') {
              pcVar32 = (char *)(piVar37[0x19] + iVar18 * 0x18);
            }
            if (*pcVar32 == 'm') {
              if (local_134 == *(int *)(pcVar32 + 0xc)) {
                if (*(int *)(pcVar32 + 8) == piVar12[7]) goto LAB_000f3b16;
                for (iVar22 = piVar12[2]; iVar22 != 0; iVar22 = *(int *)(iVar22 + 0x14)) {
                  if (*(int *)(pcVar32 + 8) == *(int *)(iVar22 + 0x2c)) goto LAB_000f3b16;
                }
              }
            }
            else if ((*pcVar32 == -0x5d) && (*(int **)(pcVar32 + 0x10) == piVar34))
            goto LAB_000f3b16;
            iVar18 = iVar18 + 1;
          } while (piVar37[0x1a] != iVar18);
        }
      }
      else {
LAB_000f3b16:
        piVar11[10] = piVar11[10] + 1;
        cVar2 = *(char *)((int)piVar11 + 0x13);
        if (cVar2 == '\0') {
          iVar18 = piVar11[0xb] + 1;
          iVar22 = iVar18;
LAB_000f4ecb:
          iVar22 = iVar22 + 1;
          piVar11[0xb] = iVar22;
        }
        else {
          bVar1 = cVar2 - 1;
          *(byte *)((int)piVar11 + 0x13) = bVar1;
          iVar18 = piVar11[bVar1 + 0x24];
          if (bVar1 == 0) {
            iVar22 = piVar11[0xb];
            goto LAB_000f4ecb;
          }
          *(byte *)((int)piVar11 + 0x13) = cVar2 - 2U;
          iVar22 = piVar11[(byte)(cVar2 - 2U) + 0x24];
        }
        FUN_00073150(local_174);
        iVar19 = FUN_00073150(0);
        FUN_00072f80(local_174,iVar18);
        FUN_00073150(iVar22);
        FUN_00072f80(iVar18,iVar22);
        FUN_00073150(iVar19);
        iVar24 = local_144[0x1a];
        iVar25 = *local_144;
        if (iVar19 < 0) {
          iVar19 = iVar24 + -1;
        }
        iVar20 = unaff_EDI + 0xc9455;
        if (*(char *)(iVar25 + 0x4d) == '\0') {
          iVar25 = iVar19 * 3;
          iVar20 = local_144[0x19] + iVar19 * 0x18;
        }
        *(int *)(iVar20 + 8) = iVar24;
        if (iVar18 != 0) {
          FUN_00045e10();
          iVar25 = extraout_ECX_00;
          iVar24 = extraout_EDX;
        }
        bVar10 = true;
        uVar35 = CONCAT31((int3)((uint)iVar24 >> 8),param_1 == (int *)0x0);
        uVar27 = CONCAT31((int3)((uint)iVar25 >> 8),0 < (int)local_174) & uVar35;
        local_16c._0_1_ = SUB41(uVar27,0);
        uVar35 = CONCAT31((int3)(uVar27 >> 8),local_174 != (byte *)0x0) & uVar35;
        if (iVar22 != 0) {
          FUN_00045e10();
        }
      }
LAB_000f3c52:
      if (local_16c._0_1_ != false) {
        local_140 = (uint)(short)piVar12[10];
      }
    }
    piVar34 = (int *)(int)*(short *)((int)piVar12 + 0x2a);
    if ((int)piVar34 < 1) {
      iVar18 = 0;
    }
    else {
      iVar18 = 0;
      pbVar21 = (byte *)(piVar12[1] + 0xf);
      pbVar29 = pbVar21 + (int)piVar34 * 0x10;
      do {
        bVar1 = *pbVar21;
        pbVar21 = pbVar21 + 0x10;
        iVar18 = iVar18 + ((int)(uint)bVar1 >> 1 & 1U);
      } while (pbVar29 != pbVar21);
    }
    if ((char)uVar35 == '\0') {
      if ((param_1 == (int *)0x0) || ((byte *)param_1[1] == local_174)) goto LAB_000f3caf;
      FUN_000886b0(piVar11,unaff_EDI + 0x6a7b3,local_174,(int *)param_1[1]);
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      goto LAB_000f3673;
    }
    piVar34 = (int *)((int)piVar34 - iVar18);
    if ((byte *)piVar34 != local_174) {
      FUN_000886b0(piVar11,unaff_EDI + 0x77d19,iVar23,0,piVar34,local_174);
      local_17c = (int *)0x0;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      goto LAB_000f3673;
    }
LAB_000f3caf:
    local_16c = 0;
    if ((((*(byte *)(iVar26 + 0x1c) & 0x80) != 0) && (*(char *)((int)piVar11 + 0x12) == '\0')) &&
       (piVar11[0x1e] == 0)) {
      local_16c = piVar11[0xb] + 1;
      piVar11[0xb] = local_16c;
      FUN_00073150(local_16c);
    }
    local_168 = (int *)0x0;
    if (iVar13 == 0) {
      piVar37 = (int *)0x0;
      if (piVar12[0xe] == 0) {
        piVar37 = (int *)FUN_00091910(0,0xffffffff,0,&local_f0,&local_ec);
      }
      if ((*(char *)(iVar26 + 0x4d) != '\0') ||
         (local_168 = (int *)FUN_00055c10(), local_168 == (int *)0x0)) goto LAB_000f366b;
      iVar18 = piVar12[2];
      piVar34 = piVar37;
      if (0 < (int)piVar37) {
        iVar22 = piVar11[0xb];
        piVar30 = local_168;
        do {
          iVar22 = iVar22 + 1;
          piVar31 = piVar30 + 1;
          piVar11[0xb] = iVar22;
          *piVar30 = iVar22;
          iVar22 = iVar22 + (uint)*(ushort *)(iVar18 + 0x34);
          piVar11[0xb] = iVar22;
          iVar18 = *(int *)(iVar18 + 0x14);
          piVar30 = piVar31;
          piVar34 = piVar11;
        } while (local_168 + (int)piVar37 != piVar31);
      }
    }
    local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
    if (param_3 == (int *)0x0) {
LAB_000f3d98:
      if (bVar10) {
        iVar23 = FUN_00073150(0);
        local_160 = local_144[0x1a];
      }
      else if (local_158 == (int *)0x0) {
        local_160 = 0;
        iVar23 = 0;
      }
      else {
        iVar23 = FUN_00073150(0);
        local_160 = iVar23;
      }
      iVar18 = piVar11[0xe] + -1;
      piVar11[0xe] = iVar18;
      if ((local_e8[0] & 1) != 0) {
        iVar22 = FUN_00045e40();
        if ((int)local_140 < 0) {
          FUN_00073150(iVar22);
        }
        else {
          if (bVar10) {
            FUN_00072f80(local_140,iVar22,piVar34,piVar34);
          }
          else {
            FUN_000cb850();
          }
          iVar24 = FUN_00073150(0);
          FUN_00073150(iVar22);
          if (iVar24 < 0) {
            iVar24 = local_144[0x1a] + -1;
          }
          iVar25 = unaff_EDI + 0xc9455;
          if (*(char *)(*local_144 + 0x4d) == '\0') {
            iVar25 = local_144[0x19] + iVar24 * 0x18;
          }
          *(int *)(iVar25 + 8) = local_144[0x1a];
          FUN_00073150(0);
        }
        iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
        if (0 < *(short *)((int)piVar12 + 0x2a)) {
          iVar25 = 0;
          bVar39 = (bool)((bVar10 ^ 1U) & local_148 == (int *)0x0);
          iVar19 = 0;
          do {
            if (param_1 == (int *)0x0) {
              if (bVar39) goto LAB_000f4c2c;
LAB_000f4c96:
              if (bVar10) {
                FUN_00072f80(iVar25,iVar22 + 1 + iVar19);
              }
              else {
                puVar7 = (undefined1 *)local_148[iVar25 * 5 + 1];
                FUN_000cb850();
                iVar24 = piVar11[0xb] + 1;
                piVar11[0xb] = iVar24;
                FUN_00073150(iVar24);
                uVar3 = *puVar7;
                *(int *)(puVar7 + 0x1c) = iVar24;
                *puVar7 = 0xa4;
                puVar7[0x28] = uVar3;
                *(uint *)(puVar7 + 4) = *(uint *)(puVar7 + 4) & 0xffffefff;
              }
            }
            else {
              if (param_1[1] < 1) {
                iVar25 = 0;
              }
              else {
                iVar25 = 0;
                iVar24 = *(int *)(*param_1 + 4);
                while (iVar19 != iVar24) {
                  iVar25 = iVar25 + 1;
                  if (iVar25 == param_1[1]) goto LAB_000f4c2c;
                  iVar24 = *(int *)(*param_1 + 4 + iVar25 * 8);
                }
                if (!bVar39) goto LAB_000f4c96;
              }
LAB_000f4c2c:
              FUN_000cb850();
            }
            iVar25 = iVar25 + (uint)(param_1 == (int *)0x0);
            iVar19 = iVar19 + 1;
            iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
          } while (iVar19 < iVar24);
        }
        if (iVar13 == 0) {
          FUN_00073230();
          iVar24 = (int)*(short *)((int)piVar12 + 0x2a);
        }
        FUN_000ef6e0(0,1,piVar12,(iVar22 - iVar24) + -1,param_2,iVar18);
        iVar24 = *(short *)((int)piVar12 + 0x2a) + 1;
        piVar34 = piVar12;
        if (iVar24 == 1) {
          FUN_0004b0a0();
        }
        else if (piVar11[7] < iVar24) {
          piVar11[7] = iVar24;
          piVar11[8] = iVar22;
        }
      }
      if (iVar13 == 0) {
        if (piVar12[0xe] != 0) {
          FUN_00073150(iVar15);
        }
        if ((int)local_140 < 0) {
          piVar37 = (int *)(uVar6 & 0x20 | piVar12[0xe]);
          if (piVar37 == (int *)0x0) {
LAB_000f4a81:
            FUN_00072f80(local_12c,local_118,piVar34,piVar34);
            local_138 = 1;
          }
          else {
            FUN_00073150(local_12c);
            local_138 = 0;
          }
        }
        else {
          if (bVar10) {
            FUN_00072f80(local_140,local_12c,piVar34,piVar34);
          }
          else if (local_158 == (int *)0x0) {
            if ((*(char *)local_148[local_140 * 5 + 1] == 'n') &&
               (piVar37 = local_148, piVar12[0xe] == 0)) goto LAB_000f4a81;
            FUN_000cb850();
          }
          else {
            FUN_00073150(local_12c);
          }
          if (piVar12[0xe] == 0) {
            iVar13 = FUN_00073150(0);
            FUN_00072f80(local_12c,local_118);
            if (iVar13 < 0) {
              iVar13 = local_144[0x1a] + -1;
            }
            iVar22 = unaff_EDI + 0xc9455;
            if (*(char *)(*local_144 + 0x4d) == '\0') {
              iVar22 = local_144[0x19] + iVar13 * 0x18;
            }
            *(int *)(iVar22 + 8) = local_144[0x1a];
          }
          else {
            FUN_00073150(local_144[0x1a] + 2);
          }
          FUN_00073150(0);
          local_138 = 0;
          piVar37 = local_144;
        }
        if (0 < local_118) {
          FUN_00073150(local_12c);
        }
        if (0 < *(short *)((int)piVar12 + 0x2a)) {
          local_134 = 0;
          piVar37 = (int *)0x0;
          do {
            if ((int *)(int)(short)piVar12[10] == piVar37) {
              FUN_00073150(0);
            }
            else {
              if (param_1 == (int *)0x0) {
                iVar13 = (int)piVar37 * 0x10 + piVar12[1];
                if ((*(byte *)(iVar13 + 0xf) & 2) == 0) {
                  iVar22 = (int)piVar37 - local_134;
                  if ((-1 < iVar22) && (local_174 != (byte *)0x0)) goto LAB_000f47c2;
                }
                else {
                  local_134 = local_134 + 1;
                }
              }
              else {
                if (0 < param_1[1]) {
                  iVar22 = 0;
                  piVar34 = *(int **)(*param_1 + 4);
                  while (piVar34 != piVar37) {
                    iVar22 = iVar22 + 1;
                    if (iVar22 == param_1[1]) goto LAB_000f47ad;
                    piVar34 = *(int **)(*param_1 + 4 + iVar22 * 8);
                  }
                  if (local_174 != (byte *)0x0) {
LAB_000f47c2:
                    if (bVar10) {
                      FUN_00072f80(iVar22,iVar16 + (int)piVar37);
                    }
                    else if (local_158 == (int *)0x0) {
                      FUN_000cb850();
                    }
                    else if (local_170 != iVar16) {
                      FUN_00073150(iVar16 + (int)piVar37);
                    }
                    goto LAB_000f4756;
                  }
                }
LAB_000f47ad:
                iVar13 = (int)piVar37 * 0x10 + piVar12[1];
              }
              if (*(char *)((int)piVar11 + 0x17) == '\0') {
LAB_000f474b:
                FUN_000cb850();
              }
              else {
                local_9c = CONCAT31(local_9c._1_3_,2);
                local_98 = 0;
                local_b0._4_4_ = unaff_EDI + -0xadd67;
                local_a8[0] = unaff_EDI + -0xb66d7;
                if (*(int *)(iVar13 + 4) != 0) {
                  FUN_0005c830();
                  if ((char)local_9c == '\0') goto LAB_000f474b;
                }
                FUN_00087b20();
              }
            }
LAB_000f4756:
            piVar37 = (int *)((int)piVar37 + 1);
          } while ((int)piVar37 < (int)*(short *)((int)piVar12 + 0x2a));
        }
        if (piVar12[0xe] == 0) {
          FUN_000efeb0(local_f0,local_ec,iVar15,0,~local_140 >> 0x1f,param_2 & 0xff,iVar18,&local_b0
                       ,0,param_3,piVar37,piVar37);
          FUN_000ec820(iVar15,0,0);
          if ((int *)local_b0 == (int *)0x0) {
            bVar39 = true;
          }
          else {
            bVar39 = false;
            if ((iVar14 == 0) && (bVar39 = true, (*(byte *)(iVar26 + 0x1d) & 0x40) != 0)) {
              iVar26 = FUN_00049430();
              bVar39 = *(int *)(iVar26 + 8) == 0;
            }
          }
          FUN_00073740(local_ec,iVar15,local_168,0,local_138,bVar39,piVar12,piVar12);
        }
        else {
          for (piVar34 = (int *)piVar12[0x10]; (piVar34 != (int *)0x0 && (iVar26 != *piVar34));
              piVar34 = (int *)piVar34[6]) {
          }
          FUN_0009a0c0();
          FUN_00072f80(*(short *)((int)piVar12 + 0x2a) + 2,iVar15);
          FUN_00062750(0xfffffff4);
          uVar28 = (undefined2)param_2;
          if (param_2 == 0xb) {
            uVar28 = 2;
          }
          if (0 < local_144[0x1a]) {
            *(undefined2 *)(local_144[0x1a] * 0x18 + local_144[0x19] + -0x16) = uVar28;
          }
          piVar34 = (int *)piVar11[0x1d];
          if ((int *)piVar11[0x1d] == (int *)0x0) {
            piVar34 = piVar11;
          }
          *(undefined1 *)((int)piVar34 + 0x15) = 1;
        }
      }
      if (local_16c != 0) {
        FUN_00073150(1);
      }
      if (iVar14 != 0) {
        FUN_000ef6e0(0,2,piVar12,local_110 - *(short *)((int)piVar12 + 0x2a),param_2,iVar18);
      }
      FUN_0006dec0();
      if (bVar10) {
        FUN_00073150(local_160);
        if (iVar23 < 0) {
          iVar23 = local_144[0x1a] + -1;
        }
        iVar26 = unaff_EDI + 0xc9455;
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          iVar26 = iVar23 * 0x18 + local_144[0x19];
        }
        *(int *)(iVar26 + 8) = local_144[0x1a];
        FUN_00073150(0);
      }
      else if (local_158 != (int *)0x0) {
        FUN_00073150(local_160);
        if (iVar23 < 0) {
          iVar23 = local_144[0x1a] + -1;
        }
        iVar26 = unaff_EDI + 0xc9455;
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          iVar26 = local_144[0x19] + iVar23 * 0x18;
        }
        *(int *)(iVar26 + 8) = local_144[0x1a];
      }
      if (((*(char *)((int)piVar11 + 0x12) == '\0') && (piVar11[0x1e] == 0)) && (piVar11[0x1c] != 0)
         ) {
        FUN_000916b0();
      }
      local_17c = local_168;
      if (local_16c != 0) {
        FUN_00073150(1);
        FUN_00061230();
        if (*(char *)(*local_144 + 0x4d) == '\0') {
          FUN_0006fe70(unaff_EDI + 0x6a7cc,0);
        }
      }
      goto LAB_000f3673;
    }
    if (piVar12[0xe] == 0) {
      *(int *)(iVar23 + 0x30) = local_f0;
      param_3[5] = iVar23;
      param_3[7] = local_f0;
      param_3[6] = iVar16;
      piVar34 = (int *)*param_3;
      param_3[8] = local_ec;
      local_b0 = CONCAT44(local_b0._4_4_,(int *)local_b0);
      if (piVar34 != (int *)0x0) {
        uVar35 = 0;
        do {
          *(undefined4 *)((int)local_a8 + uVar35) = 0;
          uVar35 = uVar35 + 4;
        } while (uVar35 < 0x18);
        local_b0 = uVar41;
        if (0 < *piVar34) {
          iVar18 = 0;
          do {
            iVar22 = FUN_00089330();
            if (iVar22 != 0) goto LAB_000f3d98;
            iVar18 = iVar18 + 1;
          } while (iVar18 < *piVar34);
        }
        iVar18 = FUN_00089330();
        if (iVar18 == 0) {
          iVar18 = *(int *)(iVar23 + 0x18);
          puVar8 = (uint *)*param_3;
          uVar9 = *(undefined4 *)(iVar23 + 0x30);
          if ((((*(byte *)(iVar18 + 0x24) & 0x20) != 0) || (*puVar8 != 1)) ||
             ((*(char *)puVar8[1] != -0x62 || (*(int *)((char *)puVar8[1] + 0x20) != -1)))) {
            piVar37 = (int *)local_90;
            for (iVar23 = 0x1c; iVar23 != 0; iVar23 = iVar23 + -1) {
              *piVar37 = 0;
              piVar37 = piVar37 + (uint)bVar40 * -2 + 1;
            }
            local_58[0] = 0x9e;
            local_90[0] = 0x66;
            iVar22 = 0;
            local_3c = uVar9;
            local_84 = (int *)local_58;
            for (iVar23 = *(int *)(iVar18 + 8); iVar23 != 0; iVar23 = *(int *)(iVar23 + 0x14)) {
              if ((*(char *)(iVar23 + 0x36) != '\0') &&
                 (uVar35 = (uint)*(ushort *)(iVar23 + 0x32), *puVar8 == uVar35)) {
                iVar22 = *(int *)(iVar23 + 0x24);
                if (iVar22 == 0) {
LAB_000f502a:
                  if (uVar35 == 0) {
LAB_000f50dd:
                    param_3[4] = iVar23;
                    goto LAB_000f3d98;
                  }
                  uVar27 = 0;
                  while( true ) {
                    local_88 = *(undefined4 *)(*(int *)(iVar23 + 0x20) + uVar27 * 4);
                    if (*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2) == -2) {
                      piVar37 = *(int **)(*(int *)(iVar23 + 0x28) + uVar27 * 0x14 + 4);
                      piVar34 = piVar37;
                      if ((char)*piVar37 != 'f') {
                        piVar34 = (int *)local_90;
                        local_84 = piVar37;
                      }
                    }
                    else {
                      local_38 = (int)*(short *)(*(int *)(iVar23 + 4) + uVar27 * 2);
                      piVar34 = (int *)local_90;
                      local_84 = (int *)local_58;
                    }
                    local_160 = 0;
                    while( true ) {
                      iVar18 = FUN_000872a0(uVar9);
                      iVar22 = extraout_ECX_02;
                      if (iVar18 < 2) break;
                      local_160 = local_160 + 1;
                      if (uVar35 == local_160) goto LAB_000f4fe0;
                    }
                    if ((int)uVar35 <= (int)local_160) break;
                    uVar27 = uVar27 + 1;
                    if (uVar35 == uVar27) goto LAB_000f50dd;
                  }
                }
                else if (param_3[1] != 0) {
                  iVar18 = FUN_000872a0(uVar9);
                  iVar22 = extraout_ECX_01;
                  if (iVar18 == 0) {
                    uVar35 = (uint)*(ushort *)(iVar23 + 0x32);
                    goto LAB_000f502a;
                  }
                }
              }
LAB_000f4fe0:
            }
            FUN_000886b0(piVar11,unaff_EDI + 0x77d7d,iVar22,iVar22);
          }
        }
      }
      goto LAB_000f3d98;
    }
    FUN_000886b0(piVar11,&UNK_00077d4d + unaff_EDI,*piVar12,uVar35);
    FUN_000638a0();
    local_17c = local_168;
    if (local_148 != (int *)0x0) goto LAB_000f3688;
  }
  else {
    FUN_000638a0();
    local_17c = (int *)0x0;
LAB_000f36a8:
    if (param_3 == (int *)0x0) goto LAB_000f370c;
  }
LAB_000f36b0:
  if (*param_3 != 0) {
    FUN_00063e30();
  }
  if (param_3[1] != 0) {
    FUN_00063d60();
  }
  if (param_3[2] != 0) {
    FUN_00063e30();
  }
  if (param_3[3] != 0) {
    FUN_00063d60();
  }
  FUN_00044090();
LAB_000f370c:
  if (local_158 != (int *)0x0) {
    FUN_00063a90();
  }
  if (param_1 != (int *)0x0) {
    FUN_0005b000();
  }
  if (local_17c != (int *)0x0) {
    FUN_00044090();
  }
LAB_000f374a:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00153870();
}

