
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 fts5IndexMergeLevel(Fts5Index *p,Fts5Structure **ppStruct,int iLvl,int *pnRem)

{
  int *piVar1;
  sqlite3_stmt *psVar2;
  Fts5Buffer *pBuf;
  int iVar3;
  byte bVar4;
  ushort uVar5;
  ushort uVar6;
  sqlite3_stmt **__n;
  uint uVar7;
  Fts5StructureSegment *pFVar8;
  sqlite3_blob *psVar9;
  Fts5Structure *pOld;
  bool bVar10;
  Fts5Iter *pFVar11;
  int iVar12;
  Fts5Data *p_00;
  char *zSql;
  Fts5SegWriter *pFVar13;
  sqlite3_stmt *psVar14;
  int iVar15;
  int iVar16;
  Fts5SegIter *pFVar17;
  Fts5SegWriter *pFVar18;
  int iVar19;
  int in_GS_OFFSET;
  bool bVar20;
  sqlite3_stmt **in_stack_ffffff0c;
  u8 *puVar21;
  undefined4 uVar22;
  undefined4 *puVar23;
  Fts5Index *local_d4;
  int local_d0;
  sqlite3_stmt *local_c8;
  Fts5Iter *pIter;
  Fts5Buffer term;
  Fts5Buffer buf;
  Fts5SegWriter writer;
  u8 aHdr [4];
  
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  local_d4 = (Fts5Index *)*ppStruct;
  pIter = (Fts5Iter *)0x0;
  local_d0 = 0;
  iVar12 = iLvl * 0xc + 0x14;
  if (pnRem != (int *)0x0) {
    local_d0 = *pnRem;
  }
  term.p = (u8 *)0x0;
  iVar19 = p->pConfig->eDetail;
  term.n = 0;
  term.nSpace = 0;
  pFVar13 = &writer;
  for (iVar16 = 0x17; iVar16 != 0; iVar16 = iVar16 + -1) {
    pFVar13->iSegid = 0;
    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;
  }
  pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc);
  if (pFVar13 == (Fts5SegWriter *)0x0) {
    if (p->rc != 0) goto LAB_00145058;
    if (1999 < (int)local_d4->pHash) {
      p->rc = 0xd;
      goto LAB_00145058;
    }
    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);
    if (local_d4->nPendingData + -1 == iLvl) {
      pOld = *ppStruct;
      if (p->rc != 0) goto LAB_00145058;
      iVar16 = pOld->nLevel;
      iVar15 = sqlite3_initialize();
      if (iVar15 == 0) {
        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));
        if (local_d4 != (Fts5Index *)0x0) {
          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);
          *puVar23 = 0;
          puVar23[1] = 0;
          puVar23[2] = 0;
          local_d4->nPendingData = local_d4->nPendingData + 1;
          *ppStruct = (Fts5Structure *)local_d4;
          goto LAB_0014574e;
        }
      }
    }
    else {
LAB_0014574e:
      if (p->rc != 0) goto LAB_00145058;
      psVar14 = (&local_d4->pWriter)[iLvl * 3];
      iVar16 = sqlite3_initialize();
      if ((iVar16 == 0) &&
         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),
         psVar14 != (sqlite3_stmt *)0x0)) {
        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;
        *(undefined4 *)psVar2 = 0;
        *(undefined4 *)(psVar2 + 4) = 0;
        *(undefined4 *)(psVar2 + 8) = 0;
        (&local_d4->pWriter)[iLvl * 3] = psVar14;
        if (p->rc != 0) goto LAB_00145058;
        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);
        uVar22 = 0x1457e7;
        fts5WriteInit(p,pFVar13,(int)puVar23);
        psVar9 = (&local_d4->pReader)[iLvl * 3];
        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;
        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;
        *(undefined4 *)(local_c8 + 4) = 1;
        *(Fts5SegWriter **)local_c8 = pFVar13;
        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);
        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);
        goto LAB_001450d9;
      }
    }
    p->rc = 7;
  }
  else {
    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);
    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;
    uVar22 = 0x1450c0;
    fts5WriteInit(p,pFVar13,(int)puVar23);
    writer.iBtPage = 0;
    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;
LAB_001450d9:
    bVar20 = false;
    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {
      bVar20 = local_d4->nPendingData == iLvl + 2;
    }
    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,
                     (int)pFVar13,&pIter);
    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {
      piVar1 = &p->rc;
      bVar10 = false;
      pBuf = &writer.writer.buf;
      do {
        pFVar11 = pIter;
        uVar5 = pIter->aFirst[1].iFirst;
        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;
        puVar21 = pIter->aSeg[uVar5].term.p;
        if (((sqlite3_stmt **)term.n != __n) ||
           ((__n != (sqlite3_stmt **)0x0 &&
            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {
          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;
          term.n = 0;
          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);
          bVar10 = false;
        }
        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))
        {
          iVar12 = p->rc;
          if (!bVar10 && iVar12 == 0) {
            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);
            iVar12 = p->rc;
            bVar10 = true;
          }
          if (iVar12 == 0) {
            uVar6 = pIter->aFirst[1].iFirst;
            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;
            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);
            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {
              uVar22 = 0x145a64;
              fts5WriteFlushLeaf(p,&writer);
            }
            if (writer.bFirstRowidInPage != '\0') {
              *(ushort *)writer.writer.buf.p =
                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;
              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));
            }
            if (writer._56_2_ == 0) {
              sqlite3Fts5BufferAppendVarint
                        (piVar1,pBuf,
                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -
                                  (uint)(uVar7 < (uint)writer.iPrevRowid),
                                  uVar7 - (uint)writer.iPrevRowid));
            }
            else {
              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));
            }
            writer.bFirstRowidInDoclist = '\0';
            writer.bFirstRowidInPage = '\0';
            writer.iPrevRowid._0_4_ = uVar7;
            writer.iPrevRowid._4_4_ = iVar12;
          }
          bVar4 = pFVar11->aSeg[uVar5].bDel;
          if (iVar19 == 1) {
            if ((bVar4 != 0) &&
               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {
              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);
            }
          }
          else {
            sqlite3Fts5BufferAppendVarint
                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));
            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);
          }
        }
        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,
                          CONCAT44(pFVar13,uVar22));
        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;
      } while( true );
    }
    uVar22 = 0x145302;
    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));
    pFVar11 = pIter;
    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {
      iVar12 = pIter->nSeg;
      pFVar17 = pIter->aSeg;
      buf.p = (u8 *)0x0;
      piVar1 = &p->rc;
      buf.n = 0;
      buf.nSpace = 0;
      if (0 < iVar12) {
        iVar19 = 0;
        do {
          pFVar8 = pFVar17->pSeg;
          if (pFVar8 != (Fts5StructureSegment *)0x0) {
            if (pFVar17->pLeaf == (Fts5Data *)0x0) {
              pFVar8->pgnoLast = 0;
              pFVar17->pSeg->pgnoFirst = 0;
              iVar12 = pFVar11->nSeg;
            }
            else {
              iVar12 = pFVar8->iSegid;
              iVar16 = pFVar17->iTermLeafOffset;
              aHdr[0] = '\0';
              aHdr[1] = '\0';
              aHdr[2] = '\0';
              aHdr[3] = '\0';
              iVar15 = pFVar17->iTermLeafPgno;
              puVar21 = (u8 *)0x1453b9;
              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));
              if (p_00 != (Fts5Data *)0x0) {
                if (p_00->nn < p_00->szLeaf) {
                  p->rc = 0x10b;
                  sqlite3_free(p_00);
                }
                else {
                  if (p_00->szLeaf < iVar16) {
                    p->rc = 0x10b;
                  }
                  else {
                    buf.n = 0;
                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {
                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);
                    }
                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);
                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);
                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);
                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);
                    if (p->rc == 0) {
                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;
                    }
                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);
                    iVar16 = pFVar17->iTermLeafPgno;
                    if (pFVar17->iLeafPgno == iVar16) {
                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {
                        sqlite3Fts5BufferAppendVarint
                                  (piVar1,&buf,
                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))
                        ;
                        sqlite3Fts5BufferAppendBlob
                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,
                                   p_00->p + pFVar17->iPgidxOff);
                        iVar16 = pFVar17->iTermLeafPgno;
                      }
                    }
                    pFVar17->pSeg->pgnoFirst = iVar16;
                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),
                                   CONCAT44(puVar21,in_stack_ffffff0c));
                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,
                                  (int)pFVar13);
                  }
                  sqlite3_free(p_00);
                }
              }
              iVar12 = pFVar11->nSeg;
            }
          }
          iVar19 = iVar19 + 1;
        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));
      }
      sqlite3Fts5BufferFree(&buf);
      *puVar23 = pFVar13;
    }
    else {
      pFVar18 = (Fts5SegWriter *)0x0;
      if (0 < (int)pFVar13) {
LAB_00145474:
        do {
          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);
          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),
                         CONCAT44(uVar22,in_stack_ffffff0c));
          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {
            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;
            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);
            if (p->rc == 0) {
              if (zSql == (char *)0x0) {
                p->rc = 7;
                sqlite3_free((void *)0x0);
                goto LAB_001454c4;
              }
              uVar22 = 0;
              in_stack_ffffff0c = &p->pIdxDeleter;
              iVar19 = sqlite3LockAndPrepare
                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,
                                  (sqlite3_stmt **)0x0,(char **)pFVar13);
              p->rc = iVar19;
            }
            sqlite3_free(zSql);
          }
LAB_001454c4:
          if (p->rc != 0) {
            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);
            if (pFVar13 == pFVar18) break;
            goto LAB_00145474;
          }
          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);
          uVar22 = 0x1454de;
          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));
          sqlite3_step(p->pIdxDeleter);
          iVar12 = sqlite3_reset(p->pIdxDeleter);
          p->rc = iVar12;
        } while (pFVar13 != pFVar18);
      }
      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {
        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),
                ((int)puVar23[1] - (int)pFVar13) * 0xc);
      }
      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);
      puVar23[1] = puVar23[1] - (int)pFVar13;
      *puVar23 = 0;
      if (*(int *)(local_c8 + 8) == 0) {
        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;
        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);
      }
    }
    fts5MultiIterFree(pIter);
    sqlite3Fts5BufferFree(&term);
    if (pnRem != (int *)0x0) {
      *pnRem = *pnRem - writer.nLeafWritten;
    }
  }
LAB_00145058:
  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)

{
  undefined4 *puVar1;
  size_t __n;
  void *__s1;
  uint uVar2;
  int iVar3;
  bool bVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  int iVar13;
  int *piVar14;
  int in_GS_OFFSET;
  bool bVar15;
  int local_d4;
  int local_d0;
  undefined4 *local_c8;
  int local_c4;
  int local_9c;
  void *local_98;
  size_t local_94;
  undefined4 local_90;
  int local_8c;
  int local_88;
  uint local_84;
  int local_80 [3];
  ushort *local_74;
  int local_70;
  int local_64;
  uint local_50;
  int local_4c;
  undefined2 local_48;
  int local_44;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_d4 = *param_2;
  local_9c = 0;
  local_d0 = 0;
  iVar5 = param_3 * 0xc + 0x14;
  if (param_4 != (int *)0x0) {
    local_d0 = *param_4;
  }
  local_98 = (void *)0x0;
  iVar8 = *(int *)(*param_1 + 0x30);
  local_94 = 0;
  local_90 = 0;
  piVar11 = local_80;
  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {
    *piVar11 = 0;
    piVar11 = piVar11 + 1;
  }
  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);
  if (iVar13 == 0) {
    if (param_1[8] != 0) goto LAB_00145058;
    if (1999 < *(int *)(local_d4 + 0xc)) {
      param_1[8] = 0xd;
      goto LAB_00145058;
    }
    uVar9 = FUN_00047b60();
    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {
      if (param_1[8] != 0) goto LAB_00145058;
      iVar13 = *(int *)(*param_2 + 0x10);
      iVar10 = FUN_00067fc0();
      if (iVar10 == 0) {
        local_d4 = FUN_00055930();
        if (local_d4 != 0) {
          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);
          *puVar1 = 0;
          puVar1[1] = 0;
          puVar1[2] = 0;
          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;
          *param_2 = local_d4;
          goto LAB_0014574e;
        }
      }
    }
    else {
LAB_0014574e:
      if (param_1[8] != 0) goto LAB_00145058;
      iVar13 = local_d4 + (param_3 + 1) * 0xc;
      iVar10 = FUN_00067fc0();
      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {
        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);
        *puVar1 = 0;
        puVar1[1] = 0;
        puVar1[2] = 0;
        *(int *)(iVar13 + 0x1c) = iVar10;
        if (param_1[8] != 0) goto LAB_00145058;
        piVar11 = (int *)(iVar5 + local_d4);
        FUN_00100e40();
        iVar5 = *(int *)(iVar13 + 0x18);
        *(int *)(iVar13 + 0x18) = iVar5 + 1;
        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);
        local_c8[1] = 1;
        *local_c8 = uVar9;
        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;
        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);
        goto LAB_001450d9;
      }
    }
    param_1[8] = 7;
  }
  else {
    piVar11 = (int *)(iVar5 + local_d4);
    iVar5 = local_d4 + (param_3 + 1) * 0xc;
    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);
    FUN_00100e40(iVar13,piVar11,local_80);
    local_28 = 0;
    local_80[1] = local_c8[2] + 1;
LAB_001450d9:
    local_c4 = local_d4 + 0x20 + param_3 * 0xc;
    bVar15 = false;
    if (*(int *)(local_c4 + 4) == 1) {
      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;
    }
    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);
    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {
      bVar4 = false;
      do {
        iVar5 = local_9c;
        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);
        iVar10 = uVar6 * 0x58 + local_9c;
        __n = *(size_t *)(iVar10 + 0x84);
        __s1 = *(void **)(iVar10 + 0x80);
        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))
        {
          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;
          local_94 = 0;
          FUN_0009a550(__s1);
          bVar4 = false;
        }
        iVar10 = uVar6 * 0x58 + iVar5;
        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {
          iVar10 = param_1[8];
          if (!bVar4 && iVar10 == 0) {
            FUN_0010df50(__s1);
            iVar10 = param_1[8];
            bVar4 = true;
          }
          if (iVar10 == 0) {
            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;
            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);
            iVar10 = *(int *)(local_9c + 0x90 + iVar10);
            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {
              FUN_001087a0();
            }
            if (local_48._1_1_ != '\0') {
              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;
              FUN_00126590(uVar2,iVar10);
            }
            if (local_48 == 0) {
              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));
            }
            else {
              FUN_0009b360(uVar2,iVar10);
            }
            local_48 = 0;
            local_50 = uVar2;
            local_4c = iVar10;
          }
          iVar5 = iVar5 + uVar6 * 0x58;
          if (iVar8 == 1) {
            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {
              FUN_0009b360(0,0);
            }
          }
          else {
            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;
            FUN_0009b360(iVar5,iVar5 >> 0x1f);
            FUN_001148c0(FUN_0011d990);
          }
        }
        FUN_00142ae0(0,0);
        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;
      } while( true );
    }
    FUN_0010e2d0();
    iVar5 = local_9c;
    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {
      iVar8 = *(int *)(local_9c + 0x2c);
      piVar14 = (int *)(local_9c + 0x44);
      local_8c = 0;
      local_88 = 0;
      local_84 = 0;
      if (0 < iVar8) {
        iVar10 = 0;
        do {
          piVar7 = (int *)*piVar14;
          if (piVar7 != (int *)0x0) {
            if (piVar14[3] == 0) {
              piVar7[2] = 0;
              *(undefined4 *)(*piVar14 + 4) = 0;
              iVar8 = *(int *)(iVar5 + 0x2c);
            }
            else {
              iVar8 = *piVar7;
              iVar12 = piVar14[8];
              local_24 = 0;
              iVar3 = piVar14[7];
              piVar7 = (int *)FUN_001133e0();
              if (piVar7 != (int *)0x0) {
                if (piVar7[1] < piVar7[2]) {
                  param_1[8] = 0x10b;
                  FUN_00044000(piVar7);
                }
                else {
                  if (piVar7[2] < iVar12) {
                    param_1[8] = 0x10b;
                  }
                  else {
                    local_88 = 0;
                    if (local_84 < (uint)piVar7[1]) {
                      FUN_0009a490(piVar7[1]);
                    }
                    FUN_0009a550(&local_24);
                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);
                    FUN_0009a550(piVar14[0xf]);
                    FUN_0009a550(iVar12 + *piVar7);
                    if (param_1[8] == 0) {
                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;
                    }
                    FUN_0009b360(4,0);
                    iVar12 = piVar14[7];
                    if (piVar14[2] == iVar12) {
                      if (piVar14[10] < piVar7[2]) {
                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;
                        FUN_0009b360(iVar12,iVar12 >> 0x1f);
                        FUN_0009a550(piVar14[9] + *piVar7);
                        iVar12 = piVar14[7];
                      }
                    }
                    *(int *)(*piVar14 + 4) = iVar12;
                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);
                    FUN_00108640(local_8c,local_88);
                  }
                  FUN_00044000(piVar7);
                }
              }
              iVar8 = *(int *)(iVar5 + 0x2c);
            }
          }
          iVar10 = iVar10 + 1;
        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));
      }
      FUN_00066c70();
      *piVar11 = iVar13;
    }
    else {
      iVar5 = 0;
      if (0 < iVar13) {
LAB_00145474:
        do {
          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);
          iVar10 = iVar8 >> 0x1f;
          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);
          if (param_1[0xd] == 0) {
            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",
                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));
            if (param_1[8] == 0) {
              if (iVar12 == 0) {
                param_1[8] = 7;
                FUN_00044000(0);
                goto LAB_001454c4;
              }
              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);
              param_1[8] = iVar8;
            }
            FUN_00044000(iVar12);
          }
LAB_001454c4:
          if (param_1[8] != 0) {
            iVar5 = iVar5 + 1;
            if (iVar13 == iVar5) break;
            goto LAB_00145474;
          }
          iVar5 = iVar5 + 1;
          FUN_00079e80();
          FUN_000e7e00(param_1[0xd]);
          iVar8 = FUN_000bfe40(param_1[0xd]);
          param_1[8] = iVar8;
        } while (iVar13 != iVar5);
      }
      if (piVar11[1] != iVar13) {
        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);
      }
      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;
      piVar11[1] = piVar11[1] - iVar13;
      *piVar11 = 0;
      if (local_c8[2] == 0) {
        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;
        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;
      }
    }
    FUN_000521f0();
    FUN_00066c70();
    if (param_4 != (int *)0x0) {
      *param_4 = *param_4 - local_44;
    }
  }
LAB_00145058:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
CALL 0x00152e6c
ADD ESI,0x75e9e
PUSH EBX
MOV EBX,ECX
SUB ESP,0xdc
MOV dword ptr [ESP + 0x10],ESI
MOV ESI,EDX
MOV EDX,dword ptr [ESP + 0xf0]
MOV dword ptr [ESP + 0x20],EDX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xcc],EAX
XOR EAX,EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[ECX + ECX*0x2]
SHL EAX,0x2
MOV dword ptr [ESP + 0x24],EAX
ADD EAX,0x14
MOV dword ptr [ESP + 0x4],EAX
TEST EDX,EDX
JZ 0x00144fea
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EBP]
LEA EDI,[ESP + 0x6c]
MOV ECX,0x17
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x8],EDI
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x34],EAX
XOR EAX,EAX
STOSD.REP ES:EDI
MOV EDI,dword ptr [ESP + 0x18]
LEA EAX,[EBX + EBX*0x2]
MOV EAX,dword ptr [EDI + EAX*0x4 + 0x14]
LEA EDI,[EBX + 0x1]
MOV dword ptr [ESP],EAX
TEST EAX,EAX
JNZ 0x00145080
MOV ECX,dword ptr [EBP + 0x20]
TEST ECX,ECX
JNZ 0x00145058
MOV EAX,dword ptr [ESP + 0x18]
CMP dword ptr [EAX + 0xc],0x7cf
JLE 0x00145730
MOV dword ptr [EBP + 0x20],0xd
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xcc]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00145a69
ADD ESP,0xdc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x4]
ADD EAX,ESI
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x24]
LEA EAX,[ESI + EAX*0x1 + 0x20]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EDI + EDI*0x2]
LEA EAX,[ESI + EAX*0x4]
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x1c]
LEA EDX,[EDX + EDX*0x2]
LEA EAX,[EAX + EDX*0x4 + -0xc]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX]
MOV ESI,EAX
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,EBP
CALL 0x00100e40
MOV EAX,dword ptr [ESI + 0x8]
MOV dword ptr [ESP + 0xc4],0x0
MOV dword ptr [ESP + 0x30],EAX
ADD EAX,0x1
MOV dword ptr [ESP + 0x70],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x38],0x0
CMP dword ptr [EAX + 0x4],0x1
JNZ 0x001450ff
MOV ESI,dword ptr [ESP + 0x18]
LEA EAX,[EBX + 0x2]
CMP dword ptr [ESI + 0x10],EAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x38],EAX
SUB ESP,0x8
MOV ECX,0x20
LEA EAX,[ESP + 0x58]
PUSH EAX
MOV EAX,EBP
PUSH dword ptr [ESP + 0xc]
PUSH EBX
PUSH 0x0
PUSH 0x0
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x38]
CALL 0x00143110
ADD ESP,0x20
MOV ESI,dword ptr [EBP + 0x20]
LEA EAX,[ESP + 0x54]
MOV dword ptr [ESP + 0x30],EAX
TEST ESI,ESI
JNZ 0x001452f0
MOV EDI,dword ptr [ESP + 0x50]
CMP byte ptr [EDI + 0x10],0x0
JNZ 0x001452f0
LEA EAX,[EBP + 0x20]
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x44],EAX
LEA EAX,[ESP + 0x78]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EDI + 0x40]
MOVZX EAX,word ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x3c],EAX
IMUL EAX,EAX,0x58
ADD EAX,EDI
MOV ESI,dword ptr [EAX + 0x84]
MOV EAX,dword ptr [EAX + 0x80]
MOV dword ptr [ESP + 0x48],EAX
CMP dword ptr [ESP + 0x58],ESI
JZ 0x001458c0
MOV EBX,dword ptr [ESP + 0x20]
TEST EBX,EBX
JZ 0x001451a0
MOV EAX,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0xa8],EAX
JG 0x001452f0
MOV dword ptr [ESP + 0x58],0x0
SUB ESP,0xc
MOV ECX,ESI
PUSH dword ptr [ESP + 0x54]
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0009a550
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x0
IMUL EAX,dword ptr [ESP + 0x3c],0x58
ADD EAX,EDI
MOV ECX,dword ptr [EAX + 0x94]
TEST ECX,ECX
JNZ 0x001451f3
MOV EDX,dword ptr [ESP + 0x38]
TEST EDX,EDX
JNZ 0x001452bb
CMP byte ptr [EAX + 0x98],0x0
JZ 0x001452bb
MOV EAX,dword ptr [EBP + 0x20]
MOV EBX,dword ptr [ESP + 0x40]
OR EBX,EAX
JZ 0x00145988
TEST EAX,EAX
JNZ 0x00145299
MOV EDX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [EDX + 0x40]
MOVZX EAX,word ptr [EAX + 0x4]
IMUL EAX,EAX,0x58
MOV EBX,dword ptr [EDX + EAX*0x1 + 0x8c]
MOV ESI,dword ptr [EDX + EAX*0x1 + 0x90]
MOV EDX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x88]
ADD EAX,dword ptr [ESP + 0x7c]
CMP EAX,dword ptr [EDX + 0x44]
JGE 0x00145a59
CMP byte ptr [ESP + 0xa5],0x0
JNZ 0x00145a31
CMP word ptr [ESP + 0xa4],0x0
JNZ 0x001459af
SUB ESP,0x8
MOV EAX,EBX
MOV EDX,ESI
SUB EAX,dword ptr [ESP + 0xa4]
SBB EDX,dword ptr [ESP + 0xa8]
PUSH EDX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0009b360
ADD ESP,0x10
XOR EAX,EAX
MOV dword ptr [ESP + 0x9c],EBX
MOV dword ptr [ESP + 0xa0],ESI
MOV word ptr [ESP + 0xa4],AX
IMUL ESI,dword ptr [ESP + 0x3c],0x58
CMP dword ptr [ESP + 0x34],0x1
LEA EBX,[EDI + ESI*0x1]
MOVZX EAX,byte ptr [EBX + 0x98]
JNZ 0x00145880
TEST AL,AL
JNZ 0x001459f0
SUB ESP,0x8
MOV EAX,EBP
XOR ECX,ECX
PUSH 0x0
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x60]
CALL 0x00142ae0
MOV EAX,dword ptr [EBP + 0x20]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x001452f0
MOV EDI,dword ptr [ESP + 0x50]
CMP byte ptr [EDI + 0x10],0x0
JZ 0x0014515d
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x8]
LEA ECX,[EAX + 0x8]
MOV EAX,EBP
CALL 0x0010e2d0
MOV EAX,dword ptr [EBP + 0x20]
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x00145440
MOV EAX,dword ptr [ESP + 0x50]
CMP byte ptr [EAX + 0x10],0x0
MOV dword ptr [ESP + 0x1c],EAX
JNZ 0x00145440
MOV EDX,dword ptr [EAX + 0x2c]
LEA EBX,[EAX + 0x44]
LEA EAX,[ESP + 0x60]
MOV dword ptr [ESP + 0x60],0x0
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBP + 0x20]
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[ESP + 0xc8]
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x38],EAX
TEST EDX,EDX
JLE 0x00145710
MOV dword ptr [ESP + 0x8],EBP
JMP 0x00145410
MOV EDX,dword ptr [EAX]
MOV EAX,0x0
MOV EDI,dword ptr [EBX + 0x20]
MOV dword ptr [ESP + 0xc8],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0x1c]
SHL EDX,0x5
MOV dword ptr [ESP + 0x24],EDI
MOV dword ptr [ESP + 0x14],EDX
CDQ
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADD EDI,dword ptr [ESP + 0x10]
MOV EBP,EDX
ADC EBP,dword ptr [ESP + 0x14]
MOV EDX,EDI
MOV ECX,EBP
MOV dword ptr [ESP + 0x28],EDI
MOV dword ptr [ESP + 0x2c],EBP
CALL 0x001133e0
MOV EDI,EAX
TEST EAX,EAX
JZ 0x001453ec
MOV EAX,dword ptr [EAX + 0x8]
CMP EAX,dword ptr [EDI + 0x4]
JG 0x00145948
CMP dword ptr [ESP + 0x24],EAX
JLE 0x00145610
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x20],0x10b
SUB ESP,0xc
PUSH EDI
CALL 0x00044000
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [EAX + 0x2c]
ADD ESI,0x1
CMP ESI,EDX
JGE 0x00145710
MOV EAX,dword ptr [ESP + 0x8]
ADD EBX,0x58
MOV EBP,dword ptr [EAX + 0x20]
TEST EBP,EBP
JNZ 0x00145710
MOV EAX,dword ptr [EBX]
TEST EAX,EAX
JZ 0x001453f3
MOV EDI,dword ptr [EBX + 0xc]
TEST EDI,EDI
JNZ 0x00145370
MOV dword ptr [EAX + 0x8],0x0
MOV EAX,dword ptr [EBX]
MOV dword ptr [EAX + 0x4],0x0
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [EAX + 0x2c]
JMP 0x001453f3
MOV EAX,dword ptr [ESP + 0x10]
XOR EBX,EBX
LEA EAX,[EAX + 0xfffb35c0]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBP + 0x34]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP]
TEST EAX,EAX
JG 0x00145474
JMP 0x00145501
ADD EBX,0x1
CMP dword ptr [ESP],EBX
JZ 0x00145501
MOV EDI,dword ptr [ESP + 0x4]
LEA EAX,[EBX + EBX*0x2]
SUB ESP,0x8
SHL EAX,0x2
ADD EAX,dword ptr [EDI + 0x8]
MOV EAX,dword ptr [EAX]
MOV ECX,EAX
MOV dword ptr [ESP + 0x10],EAX
SAR ECX,0x1f
MOV dword ptr [ESP + 0x14],ECX
MOV ECX,EAX
ADD EAX,0x1
MOV EDX,EAX
MOV EAX,0x0
SHL ECX,0x5
SHL EDX,0x5
ADD EAX,-0x1
ADC EDX,-0x1
PUSH EDX
XOR EDX,EDX
PUSH EAX
MOV EAX,EBP
CALL 0x001088b0
MOV EDI,dword ptr [EBP + 0x34]
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00145598
MOV ECX,dword ptr [EBP + 0x20]
TEST ECX,ECX
JNZ 0x00145468
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
ADD EBX,0x1
MOV EAX,dword ptr [EBP + 0x34]
CALL 0x00079e80
SUB ESP,0xc
PUSH dword ptr [EBP + 0x34]
CALL 0x000e7e00
POP EDX
PUSH dword ptr [EBP + 0x34]
CALL 0x000bfe40
ADD ESP,0x10
MOV dword ptr [EBP + 0x20],EAX
CMP dword ptr [ESP],EBX
JNZ 0x00145474
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,dword ptr [ESP]
JZ 0x00145538
MOV ESI,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESI + 0x8]
SUB EAX,EBX
LEA EAX,[EAX + EAX*0x2]
SHL EAX,0x2
PUSH EAX
LEA EAX,[EBX + EBX*0x2]
LEA EAX,[EDX + EAX*0x4]
PUSH EAX
PUSH EDX
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00015100
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x4]
MOV EBX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP]
SUB dword ptr [EBX + 0xc],EAX
SUB dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESI],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x00145566
MOV EAX,dword ptr [ESP + 0x28]
SUB dword ptr [EAX + 0x4],0x1
SUB dword ptr [EBX + 0xc],0x1
MOV EAX,dword ptr [ESP + 0x50]
CALL 0x000521f0
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x00066c70
MOV ESI,dword ptr [ESP + 0x20]
TEST ESI,ESI
JZ 0x00145058
MOV EAX,dword ptr [ESP + 0xa8]
SUB dword ptr [ESI],EAX
JMP 0x00145058
MOV EAX,dword ptr [EBP]
SUB ESP,0x4
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x28]
CALL 0x000a3060
MOV EDI,dword ptr [EBP + 0x20]
ADD ESP,0x10
MOV EDX,EAX
MOV ESI,EAX
TEST EDI,EDI
JNZ 0x001455e1
TEST EAX,EAX
JZ 0x001455f8
MOV EAX,dword ptr [EBP]
PUSH 0x0
MOV ECX,0xffffffff
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
PUSH 0x85
MOV EAX,dword ptr [EAX]
CALL 0x00100700
ADD ESP,0x10
MOV dword ptr [EBP + 0x20],EAX
SUB ESP,0xc
PUSH ESI
CALL 0x00044000
ADD ESP,0x10
JMP 0x001454c4
SUB ESP,0xc
MOV dword ptr [EBP + 0x20],0x7
PUSH ESI
CALL 0x00044000
ADD ESP,0x10
JMP 0x001454c4
MOV dword ptr [ESP + 0x64],0x0
MOV EAX,dword ptr [EDI + 0x4]
CMP EAX,dword ptr [ESP + 0x68]
JA 0x00145968
SUB ESP,0xc
MOV ECX,0x4
PUSH dword ptr [ESP + 0x44]
MOV EBP,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x0009a550
POP ECX
POP EAX
MOV EAX,dword ptr [EBX + 0x40]
CDQ
PUSH EDX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x0009b360
POP EAX
MOV ECX,dword ptr [EBX + 0x40]
PUSH dword ptr [EBX + 0x3c]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x0009a550
MOV EAX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [EDI + 0x8]
MOV EDX,dword ptr [ESP + 0x28]
SUB ECX,EAX
ADD EAX,dword ptr [EDI]
MOV dword ptr [ESP],EAX
MOV EAX,EBP
CALL 0x0009a550
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x20]
TEST EAX,EAX
JNZ 0x0014569d
MOVZX EAX,word ptr [ESP + 0x64]
MOV EDX,dword ptr [ESP + 0x60]
ROL AX,0x8
MOV word ptr [EDX + 0x2],AX
SUB ESP,0x8
PUSH 0x0
PUSH 0x4
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESP + 0x28]
CALL 0x0009b360
MOV EAX,dword ptr [EBX + 0x1c]
ADD ESP,0x10
CMP dword ptr [EBX + 0x8],EAX
JZ 0x001458f0
MOV EDX,dword ptr [EBX]
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [EDX + 0x4],EAX
MOV EDX,dword ptr [ESP + 0x10]
ADD EDX,0x1
ADC ECX,0x0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
MOV EBP,dword ptr [ESP + 0x18]
MOV EAX,EBP
CALL 0x001088b0
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [ESP + 0x6c]
MOV EAX,EBP
MOV EDX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x3c]
CALL 0x00108640
ADD ESP,0x10
JMP 0x001453e0
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x00066c70
MOV EAX,dword ptr [ESP + 0x4]
MOV EBX,dword ptr [ESP]
MOV dword ptr [EAX],EBX
JMP 0x00145566
CALL 0x00047b60
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x28],EAX
SUB EAX,0x1
CMP EAX,EBX
JZ 0x0014581c
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JNZ 0x00145058
MOV ESI,dword ptr [ESP + 0x18]
LEA EAX,[EDI + EDI*0x2]
LEA ESI,[ESI + EAX*0x4]
MOV EAX,dword ptr [ESI + 0x1c]
MOV EDI,dword ptr [ESI + 0x18]
MOV dword ptr [ESP + 0x28],EAX
CALL 0x00067fc0
TEST EAX,EAX
JNZ 0x00145870
LEA EDX,[EDI + EDI*0x2 + 0x3]
MOV EAX,dword ptr [ESP + 0x28]
XOR ECX,ECX
SHL EDX,0x2
CALL 0x00055930
TEST EAX,EAX
JZ 0x00145870
MOV EDX,dword ptr [ESI + 0x18]
LEA EDX,[EDX + EDX*0x2]
LEA EDX,[EAX + EDX*0x4]
MOV dword ptr [EDX],0x0
MOV dword ptr [EDX + 0x4],0x0
MOV dword ptr [EDX + 0x8],0x0
MOV dword ptr [ESI + 0x1c],EAX
MOV EDI,dword ptr [EBP + 0x20]
TEST EDI,EDI
JNZ 0x00145058
MOV EDI,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x8]
ADD EAX,EDI
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x24]
LEA EAX,[EDI + EAX*0x1 + 0x20]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,EBP
CALL 0x00100e40
MOV EAX,dword ptr [ESI + 0x18]
MOV EDX,dword ptr [ESI + 0x1c]
LEA ECX,[EAX + EAX*0x2]
ADD EAX,0x1
MOV dword ptr [ESI + 0x18],EAX
MOV ESI,dword ptr [ESP]
LEA EDX,[EDX + ECX*0x4]
LEA EAX,[EBX + EBX*0x2]
MOV dword ptr [EDX + 0x4],0x1
MOV dword ptr [EDX],ESI
ADD dword ptr [EDI + 0xc],0x1
MOV EAX,dword ptr [EDI + EAX*0x4 + 0x18]
MOV dword ptr [ESP + 0x24],EDX
MOV dword ptr [ESP],EAX
JMP 0x001450d9
MOV EDX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [ESI]
TEST EDX,EDX
JNZ 0x00145058
MOV EDX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x28],EDX
CALL 0x00067fc0
TEST EAX,EAX
JNZ 0x00145870
MOV EDX,dword ptr [ESP + 0x28]
XOR ECX,ECX
LEA EAX,[EDX + EDX*0x2 + 0x3]
LEA EDX,[EAX*0x4 + 0x0]
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x28],EDX
ADD EDX,0x20
CALL 0x00055930
MOV EDX,EAX
MOV dword ptr [ESP + 0x18],EAX
TEST EAX,EAX
JNZ 0x001459c9
LEA ESI,[ESI]
MOV dword ptr [EBP + 0x20],0x7
JMP 0x00145058
MOV EDX,dword ptr [EBX + 0x94]
SUB ESP,0x8
LEA EAX,[EAX + EDX*0x2]
CDQ
PUSH EDX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0009b360
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x18]
LEA EDX,[EDI + ESI*0x1 + 0x44]
LEA EAX,[EAX + 0xfff62b68]
MOV dword ptr [ESP],EAX
MOV EAX,EBP
CALL 0x001148c0
ADD ESP,0x10
JMP 0x001452bb
TEST ESI,ESI
JZ 0x001451c9
SUB ESP,0x4
PUSH ESI
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x54]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x000151a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001451c9
JMP 0x00145187
MOV EDX,dword ptr [EBX + 0x28]
MOV ECX,dword ptr [EDI + 0x8]
CMP EDX,ECX
JGE 0x001456c0
SUB ESP,0x8
SUB EDX,ECX
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,EDX
SUB EAX,0x5
CDQ
PUSH EDX
PUSH EAX
MOV EBP,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x0009b360
MOV EAX,dword ptr [EBX + 0x24]
MOV ECX,dword ptr [EDI + 0x4]
MOV EDX,dword ptr [ESP + 0x28]
SUB ECX,EAX
ADD EAX,dword ptr [EDI]
MOV dword ptr [ESP],EAX
MOV EAX,EBP
CALL 0x0009a550
MOV EAX,dword ptr [EBX + 0x1c]
ADD ESP,0x10
JMP 0x001456c0
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0xc
MOV dword ptr [EAX + 0x20],0x10b
PUSH EDI
CALL 0x00044000
ADD ESP,0x10
JMP 0x001453ec
LEA ECX,[ESP + 0x68]
SUB ESP,0xc
PUSH EAX
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x44]
CALL 0x0009a490
ADD ESP,0x10
JMP 0x00145625
SUB ESP,0xc
MOV EAX,EBP
MOV ECX,ESI
PUSH dword ptr [ESP + 0x54]
MOV EDX,dword ptr [ESP + 0x18]
CALL 0x0010df50
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x40],0x1
JMP 0x00145202
SUB ESP,0x8
PUSH ESI
PUSH EBX
MOV EDX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0009b360
ADD ESP,0x10
JMP 0x00145281
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EDX + EAX*0x1 + 0x8]
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
ADD dword ptr [EDX + 0x10],0x1
MOV dword ptr [ESI],EDX
JMP 0x0014574e
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x5c]
MOV ESI,dword ptr [ESP + 0x54]
MOV EDX,EDI
MOV EAX,ESI
CALL 0x0009b360
MOV EAX,dword ptr [EBX + 0x94]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x001452bb
SUB ESP,0x8
MOV EDX,EDI
MOV EAX,ESI
PUSH 0x0
PUSH 0x0
CALL 0x0009b360
ADD ESP,0x10
JMP 0x001452bb
MOVZX EAX,word ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x78]
SUB ESP,0x8
ROL AX,0x8
MOV word ptr [EDX],AX
MOV EAX,EBP
PUSH ESI
PUSH EBX
MOV EDX,dword ptr [ESP + 0x18]
CALL 0x00126590
ADD ESP,0x10
JMP 0x0014524b
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x001087a0
JMP 0x0014523d
CALL 0x00153870
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int param_3,int *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "undefined4 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "void *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "size_t local_94;" primitive_type identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "int local_80 [3];" primitive_type (array_declarator "local_80 [3]" identifier [ number_literal ]) ;) (declaration "ushort *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined2 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type 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 "local_d4 = *param_2;" (assignment_expression "local_d4 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = param_3 * 0xc + 0x14;" (assignment_expression "iVar5 = param_3 * 0xc + 0x14" identifier = (binary_expression "param_3 * 0xc + 0x14" (binary_expression "param_3 * 0xc" identifier * number_literal) + number_literal)) ;) (if_statement "if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_d0 = *param_4;\n  }" { (expression_statement "local_d0 = *param_4;" (assignment_expression "local_d0 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })) (expression_statement "local_98 = (void *)0x0;" (assignment_expression "local_98 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(*param_1 + 0x30);" (assignment_expression "iVar8 = *(int *)(*param_1 + 0x30)" identifier = (pointer_expression "*(int *)(*param_1 + 0x30)" * (cast_expression "(int *)(*param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "piVar11 = local_80;" (assignment_expression "piVar11 = local_80" identifier = identifier) ;) (for_statement "for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" for ( (assignment_expression "iVar13 = 0x17" identifier = number_literal) ; (binary_expression "iVar13 != 0" identifier != number_literal) ; (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ) (compound_statement "{\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" { (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc)" identifier = (pointer_expression "*(int *)(local_d4 + 0x14 + param_3 * 0xc)" * (cast_expression "(int *)(local_d4 + 0x14 + param_3 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x14 + param_3 * 0xc)" ( (binary_expression "local_d4 + 0x14 + param_3 * 0xc" (binary_expression "local_d4 + 0x14" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal)) ))))) ;) (if_statement "if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }" { (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (if_statement "if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" if (parenthesized_expression "(1999 < *(int *)(local_d4 + 0xc))" ( (binary_expression "1999 < *(int *)(local_d4 + 0xc)" number_literal < (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" { (expression_statement "param_1[8] = 0xd;" (assignment_expression "param_1[8] = 0xd" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00145058;" goto statement_identifier ;) })) (expression_statement "uVar9 = FUN_00047b60();" (assignment_expression "uVar9 = FUN_00047b60()" identifier = (call_expression "FUN_00047b60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" if (parenthesized_expression "(*(int *)(local_d4 + 0x10) + -1 == param_3)" ( (binary_expression "*(int *)(local_d4 + 0x10) + -1 == param_3" (binary_expression "*(int *)(local_d4 + 0x10) + -1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) + number_literal) == identifier) )) (compound_statement "{\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }" { (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "iVar13 = *(int *)(*param_2 + 0x10);" (assignment_expression "iVar13 = *(int *)(*param_2 + 0x10)" identifier = (pointer_expression "*(int *)(*param_2 + 0x10)" * (cast_expression "(int *)(*param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" { (expression_statement "local_d4 = FUN_00055930();" (assignment_expression "local_d4 = FUN_00055930()" identifier = (call_expression "FUN_00055930()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" if (parenthesized_expression "(local_d4 != 0)" ( (binary_expression "local_d4 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" { (expression_statement "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);" (assignment_expression "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" identifier = (cast_expression "(undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" ( (binary_expression "local_d4 + 8 + (iVar13 * 3 + 3) * 4" (binary_expression "local_d4 + 8" identifier + number_literal) + (binary_expression "(iVar13 * 3 + 3) * 4" (parenthesized_expression "(iVar13 * 3 + 3)" ( (binary_expression "iVar13 * 3 + 3" (binary_expression "iVar13 * 3" identifier * number_literal) + number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;" (assignment_expression "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*param_2 = local_d4;" (assignment_expression "*param_2 = local_d4" (pointer_expression "*param_2" * identifier) = identifier) ;) (goto_statement "goto LAB_0014574e;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" else (compound_statement "{\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" { (labeled_statement "LAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;" statement_identifier : (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;))) (expression_statement "iVar13 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar13 = local_d4 + (param_3 + 1) * 0xc" identifier = (binary_expression "local_d4 + (param_3 + 1) * 0xc" identifier + (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" if (parenthesized_expression "((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0))" ( (binary_expression "(iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar10 = FUN_00055930(), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00055930(), iVar10 != 0" (assignment_expression "iVar10 = FUN_00055930()" identifier = (call_expression "FUN_00055930()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" { (expression_statement "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);" (assignment_expression "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x18) * 0xc" identifier + (binary_expression "*(int *)(iVar13 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar13 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar13 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" identifier = (cast_expression "(int *)(iVar5 + local_d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + local_d4)" ( (binary_expression "iVar5 + local_d4" identifier + identifier) )))) ;) (expression_statement "FUN_00100e40();" (call_expression "FUN_00100e40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)(iVar13 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar13 + 0x18)" identifier = (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar13 + 0x18) = iVar5 + 1;" (assignment_expression "*(int *)(iVar13 + 0x18) = iVar5 + 1" (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" ( (binary_expression "*(int *)(iVar13 + 0x1c) + iVar5 * 0xc" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar5 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "local_c8[1] = 1;" (assignment_expression "local_c8[1] = 1" (subscript_expression "local_c8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*local_c8 = uVar9;" (assignment_expression "*local_c8 = uVar9" (pointer_expression "*local_c8" * identifier) = identifier) ;) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc)" identifier = (pointer_expression "*(int *)(local_d4 + 0x18 + param_3 * 0xc)" * (cast_expression "(int *)(local_d4 + 0x18 + param_3 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x18 + param_3 * 0xc)" ( (binary_expression "local_d4 + 0x18 + param_3 * 0xc" (binary_expression "local_d4 + 0x18" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_001450d9;" goto statement_identifier ;) })) }))) (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" else (compound_statement "{\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" { (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" identifier = (cast_expression "(int *)(iVar5 + local_d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + local_d4)" ( (binary_expression "iVar5 + local_d4" identifier + identifier) )))) ;) (expression_statement "iVar5 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar5 = local_d4 + (param_3 + 1) * 0xc" identifier = (binary_expression "local_d4 + (param_3 + 1) * 0xc" identifier + (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" ( (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc" (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc" (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) + number_literal) + (binary_expression "*(int *)(iVar5 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "FUN_00100e40(iVar13,piVar11,local_80);" (call_expression "FUN_00100e40(iVar13,piVar11,local_80)" identifier (argument_list "(iVar13,piVar11,local_80)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_80[1] = local_c8[2] + 1;" (assignment_expression "local_80[1] = local_c8[2] + 1" (subscript_expression "local_80[1]" identifier [ number_literal ]) = (binary_expression "local_c8[2] + 1" (subscript_expression "local_c8[2]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;" statement_identifier : (expression_statement "local_c4 = local_d4 + 0x20 + param_3 * 0xc;" (assignment_expression "local_c4 = local_d4 + 0x20 + param_3 * 0xc" identifier = (binary_expression "local_d4 + 0x20 + param_3 * 0xc" (binary_expression "local_d4 + 0x20" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal))) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" if (parenthesized_expression "(*(int *)(local_c4 + 4) == 1)" ( (binary_expression "*(int *)(local_c4 + 4) == 1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" { (expression_statement "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;" (assignment_expression "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2" identifier = (binary_expression "*(int *)(local_d4 + 0x10) == param_3 + 2" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) == (binary_expression "param_3 + 2" identifier + number_literal))) ;) })) (expression_statement "FUN_00143110(0,0,0,param_3,iVar13,&local_9c);" (call_expression "FUN_00143110(0,0,0,param_3,iVar13,&local_9c)" identifier (argument_list "(0,0,0,param_3,iVar13,&local_9c)" ( number_literal , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_9c" & identifier) ))) ;) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" if (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" ( (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (do_statement "do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );" do (compound_statement "{\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      }" { (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" identifier = identifier) ;) (expression_statement "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);" (assignment_expression "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" identifier = (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" ( (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" * (cast_expression "(int *)(local_9c + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x40)" ( (binary_expression "local_9c + 0x40" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = uVar6 * 0x58 + local_9c;" (assignment_expression "iVar10 = uVar6 * 0x58 + local_9c" identifier = (binary_expression "uVar6 * 0x58 + local_9c" (binary_expression "uVar6 * 0x58" identifier * number_literal) + identifier)) ;) (expression_statement "__n = *(size_t *)(iVar10 + 0x84);" (assignment_expression "__n = *(size_t *)(iVar10 + 0x84)" identifier = (pointer_expression "*(size_t *)(iVar10 + 0x84)" * (cast_expression "(size_t *)(iVar10 + 0x84)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x84)" ( (binary_expression "iVar10 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "__s1 = *(void **)(iVar10 + 0x80);" (assignment_expression "__s1 = *(void **)(iVar10 + 0x80)" identifier = (pointer_expression "*(void **)(iVar10 + 0x80)" * (cast_expression "(void **)(iVar10 + 0x80)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x80)" ( (binary_expression "iVar10 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" if (parenthesized_expression "((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))" ( (binary_expression "(local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" (parenthesized_expression "(local_94 != __n)" ( (binary_expression "local_94 != __n" identifier != identifier) )) || (parenthesized_expression "((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" ( (parenthesized_expression "(__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))" ( (binary_expression "__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" (binary_expression "__n != 0" identifier != number_literal) && (parenthesized_expression "(iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" ( (comma_expression "iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0" (assignment_expression "iVar10 = memcmp(__s1,local_98,__n)" identifier = (call_expression "memcmp(__s1,local_98,__n)" identifier (argument_list "(__s1,local_98,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" { (if_statement "if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;" if (parenthesized_expression "((param_4 != (int *)0x0) && (local_d0 < local_44))" ( (binary_expression "(param_4 != (int *)0x0) && (local_d0 < local_44)" (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_d0 < local_44)" ( (binary_expression "local_d0 < local_44" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "FUN_0009a550(__s1);" (call_expression "FUN_0009a550(__s1)" identifier (argument_list "(__s1)" ( identifier ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) })) (expression_statement "iVar10 = uVar6 * 0x58 + iVar5;" (assignment_expression "iVar10 = uVar6 * 0x58 + iVar5" identifier = (binary_expression "uVar6 * 0x58 + iVar5" (binary_expression "uVar6 * 0x58" identifier * number_literal) + identifier)) ;) (if_statement "if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" if (parenthesized_expression "((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))))" ( (binary_expression "(*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" (parenthesized_expression "(*(int *)(iVar10 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x94) != 0" (pointer_expression "*(int *)(iVar10 + 0x94)" * (cast_expression "(int *)(iVar10 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x94)" ( (binary_expression "iVar10 + 0x94" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" ( (parenthesized_expression "(!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))" ( (binary_expression "!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')" (unary_expression "!bVar15" ! identifier) && (parenthesized_expression "(*(char *)(iVar10 + 0x98) != '\0')" ( (binary_expression "*(char *)(iVar10 + 0x98) != '\0'" (pointer_expression "*(char *)(iVar10 + 0x98)" * (cast_expression "(char *)(iVar10 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x98)" ( (binary_expression "iVar10 + 0x98" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" { (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" if (parenthesized_expression "(!bVar4 && iVar10 == 0)" ( (binary_expression "!bVar4 && iVar10 == 0" (unary_expression "!bVar4" ! identifier) && (binary_expression "iVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" { (expression_statement "FUN_0010df50(__s1);" (call_expression "FUN_0010df50(__s1)" identifier (argument_list "(__s1)" ( identifier ))) ;) (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (if_statement "if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" { (expression_statement "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;" (assignment_expression "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" identifier = (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" ( (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" * (cast_expression "(int *)(local_9c + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x40)" ( (binary_expression "local_9c + 0x40" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ;) (expression_statement "uVar2 = *(uint *)(local_9c + 0x8c + iVar10);" (assignment_expression "uVar2 = *(uint *)(local_9c + 0x8c + iVar10)" identifier = (pointer_expression "*(uint *)(local_9c + 0x8c + iVar10)" * (cast_expression "(uint *)(local_9c + 0x8c + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x8c + iVar10)" ( (binary_expression "local_9c + 0x8c + iVar10" (binary_expression "local_9c + 0x8c" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar10 = *(int *)(local_9c + 0x90 + iVar10);" (assignment_expression "iVar10 = *(int *)(local_9c + 0x90 + iVar10)" identifier = (pointer_expression "*(int *)(local_9c + 0x90 + iVar10)" * (cast_expression "(int *)(local_9c + 0x90 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x90 + iVar10)" ( (binary_expression "local_9c + 0x90 + iVar10" (binary_expression "local_9c + 0x90" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }" if (parenthesized_expression "(*(int *)(*param_1 + 0x44) <= local_64 + local_70)" ( (binary_expression "*(int *)(*param_1 + 0x44) <= local_64 + local_70" (pointer_expression "*(int *)(*param_1 + 0x44)" * (cast_expression "(int *)(*param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x44)" ( (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" * identifier) + number_literal) )))) <= (binary_expression "local_64 + local_70" identifier + identifier)) )) (compound_statement "{\n              FUN_001087a0();\n            }" { (expression_statement "FUN_001087a0();" (call_expression "FUN_001087a0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" if (parenthesized_expression "(local_48._1_1_ != '\0')" ( (binary_expression "local_48._1_1_ != '\0'" (field_expression "local_48._1_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" { (expression_statement "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;" (assignment_expression "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8" (pointer_expression "*local_74" * identifier) = (binary_expression "(ushort)local_70 << 8 | (ushort)local_70 >> 8" (binary_expression "(ushort)local_70 << 8" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)local_70 >> 8" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "FUN_00126590(uVar2,iVar10);" (call_expression "FUN_00126590(uVar2,iVar10)" identifier (argument_list "(uVar2,iVar10)" ( identifier , identifier ))) ;) })) (if_statement "if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }" { (expression_statement "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));" (call_expression "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" identifier (argument_list "(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" ( (binary_expression "uVar2 - local_50" identifier - identifier) , (binary_expression "(iVar10 - local_4c) - (uint)(uVar2 < local_50)" (parenthesized_expression "(iVar10 - local_4c)" ( (binary_expression "iVar10 - local_4c" identifier - identifier) )) - (call_expression "(uint)(uVar2 < local_50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < local_50)" ( (binary_expression "uVar2 < local_50" identifier < identifier) )))) ))) ;) }) (else_clause "else {\n              FUN_0009b360(uVar2,iVar10);\n            }" else (compound_statement "{\n              FUN_0009b360(uVar2,iVar10);\n            }" { (expression_statement "FUN_0009b360(uVar2,iVar10);" (call_expression "FUN_0009b360(uVar2,iVar10)" identifier (argument_list "(uVar2,iVar10)" ( identifier , identifier ))) ;) }))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "local_4c = iVar10;" (assignment_expression "local_4c = iVar10" identifier = identifier) ;) })) (expression_statement "iVar5 = iVar5 + uVar6 * 0x58;" (assignment_expression "iVar5 = iVar5 + uVar6 * 0x58" identifier = (binary_expression "iVar5 + uVar6 * 0x58" identifier + (binary_expression "uVar6 * 0x58" identifier * number_literal))) ;) (if_statement "if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }" { (if_statement "if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)))" ( (binary_expression "(*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" (parenthesized_expression "(*(byte *)(iVar5 + 0x98) != 0)" ( (binary_expression "*(byte *)(iVar5 + 0x98) != 0" (pointer_expression "*(byte *)(iVar5 + 0x98)" * (cast_expression "(byte *)(iVar5 + 0x98)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" ( (comma_expression "FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)" (call_expression "FUN_0009b360(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) , (binary_expression "0 < *(int *)(iVar5 + 0x94)" number_literal < (pointer_expression "*(int *)(iVar5 + 0x94)" * (cast_expression "(int *)(iVar5 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))))) ))) )) (compound_statement "{\n              FUN_0009b360(0,0);\n            }" { (expression_statement "FUN_0009b360(0,0);" (call_expression "FUN_0009b360(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) })) }) (else_clause "else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" else (compound_statement "{\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" { (expression_statement "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;" (assignment_expression "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" identifier = (binary_expression "(uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" (binary_expression "(uint)*(byte *)(iVar5 + 0x98)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar5 + 0x98)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar5 + 0x94) * 2" (pointer_expression "*(int *)(iVar5 + 0x94)" * (cast_expression "(int *)(iVar5 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "FUN_0009b360(iVar5,iVar5 >> 0x1f);" (call_expression "FUN_0009b360(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_001148c0(FUN_0011d990);" (call_expression "FUN_001148c0(FUN_0011d990)" identifier (argument_list "(FUN_0011d990)" ( identifier ))) ;) }))) })) (expression_statement "FUN_00142ae0(0,0);" (call_expression "FUN_00142ae0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (if_statement "if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;" if (parenthesized_expression "((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0'))" ( (binary_expression "(param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')" (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(*(char *)(local_9c + 0x10) != '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) != '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_0010e2d0();" (call_expression "FUN_0010e2d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" identifier = identifier) ;) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" if (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" ( (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }" { (expression_statement "iVar8 = *(int *)(local_9c + 0x2c);" (assignment_expression "iVar8 = *(int *)(local_9c + 0x2c)" identifier = (pointer_expression "*(int *)(local_9c + 0x2c)" * (cast_expression "(int *)(local_9c + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x2c)" ( (binary_expression "local_9c + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "piVar14 = (int *)(local_9c + 0x44);" (assignment_expression "piVar14 = (int *)(local_9c + 0x44)" identifier = (cast_expression "(int *)(local_9c + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x44)" ( (binary_expression "local_9c + 0x44" identifier + number_literal) )))) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));" do (compound_statement "{\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        }" { (expression_statement "piVar7 = (int *)*piVar14;" (assignment_expression "piVar7 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" { (if_statement "if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" if (parenthesized_expression "(piVar14[3] == 0)" ( (binary_expression "piVar14[3] == 0" (subscript_expression "piVar14[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" { (expression_statement "piVar7[2] = 0;" (assignment_expression "piVar7[2] = 0" (subscript_expression "piVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(*piVar14 + 4) = 0;" (assignment_expression "*(undefined4 *)(*piVar14 + 4) = 0" (pointer_expression "*(undefined4 *)(*piVar14 + 4)" * (cast_expression "(undefined4 *)(*piVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" else (compound_statement "{\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" { (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar12 = piVar14[8];" (assignment_expression "iVar12 = piVar14[8]" identifier = (subscript_expression "piVar14[8]" identifier [ number_literal ])) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = piVar14[7];" (assignment_expression "iVar3 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = (int *)FUN_001133e0();" (assignment_expression "piVar7 = (int *)FUN_001133e0()" identifier = (cast_expression "(int *)FUN_001133e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001133e0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" { (if_statement "if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" if (parenthesized_expression "(piVar7[1] < piVar7[2])" ( (binary_expression "piVar7[1] < piVar7[2]" (subscript_expression "piVar7[1]" identifier [ number_literal ]) < (subscript_expression "piVar7[2]" identifier [ number_literal ])) )) (compound_statement "{\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }" { (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) }) (else_clause "else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" else (compound_statement "{\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" { (if_statement "if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" if (parenthesized_expression "(piVar7[2] < iVar12)" ( (binary_expression "piVar7[2] < iVar12" (subscript_expression "piVar7[2]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                    param_1[8] = 0x10b;\n                  }" { (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" else (compound_statement "{\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (if_statement "if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }" if (parenthesized_expression "(local_84 < (uint)piVar7[1])" ( (binary_expression "local_84 < (uint)piVar7[1]" identifier < (cast_expression "(uint)piVar7[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                      FUN_0009a490(piVar7[1]);\n                    }" { (expression_statement "FUN_0009a490(piVar7[1]);" (call_expression "FUN_0009a490(piVar7[1])" identifier (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_0009a550(&local_24);" (call_expression "FUN_0009a550(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (expression_statement "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);" (call_expression "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f)" identifier (argument_list "(piVar14[0x10],piVar14[0x10] >> 0x1f)" ( (subscript_expression "piVar14[0x10]" identifier [ number_literal ]) , (binary_expression "piVar14[0x10] >> 0x1f" (subscript_expression "piVar14[0x10]" identifier [ number_literal ]) >> number_literal) ))) ;) (expression_statement "FUN_0009a550(piVar14[0xf]);" (call_expression "FUN_0009a550(piVar14[0xf])" identifier (argument_list "(piVar14[0xf])" ( (subscript_expression "piVar14[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0009a550(iVar12 + *piVar7);" (call_expression "FUN_0009a550(iVar12 + *piVar7)" identifier (argument_list "(iVar12 + *piVar7)" ( (binary_expression "iVar12 + *piVar7" identifier + (pointer_expression "*piVar7" * identifier)) ))) ;) (if_statement "if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" if (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" { (expression_statement "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;" (assignment_expression "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8" (pointer_expression "*(ushort *)(local_8c + 2)" * (cast_expression "(ushort *)(local_8c + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_8c + 2)" ( (binary_expression "local_8c + 2" identifier + number_literal) )))) = (binary_expression "(ushort)local_88 << 8 | (ushort)local_88 >> 8" (binary_expression "(ushort)local_88 << 8" (cast_expression "(ushort)local_88" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)local_88 >> 8" (cast_expression "(ushort)local_88" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;) })) (expression_statement "FUN_0009b360(4,0);" (call_expression "FUN_0009b360(4,0)" identifier (argument_list "(4,0)" ( number_literal , number_literal ))) ;) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) (if_statement "if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" if (parenthesized_expression "(piVar14[2] == iVar12)" ( (binary_expression "piVar14[2] == iVar12" (subscript_expression "piVar14[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" { (if_statement "if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" if (parenthesized_expression "(piVar14[10] < piVar7[2])" ( (binary_expression "piVar14[10] < piVar7[2]" (subscript_expression "piVar14[10]" identifier [ number_literal ]) < (subscript_expression "piVar7[2]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" { (expression_statement "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;" (assignment_expression "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5" identifier = (binary_expression "local_88 + (piVar14[10] - piVar7[2]) + -5" (binary_expression "local_88 + (piVar14[10] - piVar7[2])" identifier + (parenthesized_expression "(piVar14[10] - piVar7[2])" ( (binary_expression "piVar14[10] - piVar7[2]" (subscript_expression "piVar14[10]" identifier [ number_literal ]) - (subscript_expression "piVar7[2]" identifier [ number_literal ])) ))) + number_literal)) ;) (expression_statement "FUN_0009b360(iVar12,iVar12 >> 0x1f);" (call_expression "FUN_0009b360(iVar12,iVar12 >> 0x1f)" identifier (argument_list "(iVar12,iVar12 >> 0x1f)" ( identifier , (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_0009a550(piVar14[9] + *piVar7);" (call_expression "FUN_0009a550(piVar14[9] + *piVar7)" identifier (argument_list "(piVar14[9] + *piVar7)" ( (binary_expression "piVar14[9] + *piVar7" (subscript_expression "piVar14[9]" identifier [ number_literal ]) + (pointer_expression "*piVar7" * identifier)) ))) ;) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) })) })) (expression_statement "*(int *)(*piVar14 + 4) = iVar12;" (assignment_expression "*(int *)(*piVar14 + 4) = iVar12" (pointer_expression "*(int *)(*piVar14 + 4)" * (cast_expression "(int *)(*piVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);" (call_expression "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" identifier (argument_list "(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" ( identifier , (binary_expression "(iVar3 >> 0x1f) + iVar8 * 0x20" (parenthesized_expression "(iVar3 >> 0x1f)" ( (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) )) + (binary_expression "iVar8 * 0x20" identifier * number_literal)) ))) ;) (expression_statement "FUN_00108640(local_8c,local_88);" (call_expression "FUN_00108640(local_8c,local_88)" identifier (argument_list "(local_8c,local_88)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) }))) })) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) ))))) ;) }))) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0))" ( (binary_expression "(iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0)" (parenthesized_expression "(iVar10 < iVar8)" ( (binary_expression "iVar10 < iVar8" identifier < identifier) )) && (parenthesized_expression "(piVar14 = piVar14 + 0x16, param_1[8] == 0)" ( (comma_expression "piVar14 = piVar14 + 0x16, param_1[8] == 0" (assignment_expression "piVar14 = piVar14 + 0x16" identifier = (binary_expression "piVar14 + 0x16" identifier + number_literal)) , (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal)) ))) )) ;) })) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" identifier (argument_list "()" ( ))) ;) (expression_statement "*piVar11 = iVar13;" (assignment_expression "*piVar11 = iVar13" (pointer_expression "*piVar11" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" else (compound_statement "{\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" { (labeled_statement "LAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" statement_identifier : (do_statement "do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" do (compound_statement "{\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        }" { (expression_statement "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);" (assignment_expression "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2])" identifier = (pointer_expression "*(int *)(iVar5 * 0xc + piVar11[2])" * (cast_expression "(int *)(iVar5 * 0xc + piVar11[2])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 * 0xc + piVar11[2])" ( (binary_expression "iVar5 * 0xc + piVar11[2]" (binary_expression "iVar5 * 0xc" identifier * number_literal) + (subscript_expression "piVar11[2]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar10 = iVar8 >> 0x1f;" (assignment_expression "iVar10 = iVar8 >> 0x1f" identifier = (binary_expression "iVar8 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);" (call_expression "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1)" identifier (argument_list "(0xffffffff,(iVar8 + 1) * 0x20 + -1)" ( number_literal , (binary_expression "(iVar8 + 1) * 0x20 + -1" (binary_expression "(iVar8 + 1) * 0x20" (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )) * number_literal) + number_literal) ))) ;) (if_statement "if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" if (parenthesized_expression "(param_1[0xd] == 0)" ( (binary_expression "param_1[0xd] == 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" { (expression_statement "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));" (assignment_expression "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" identifier = (call_expression "FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" identifier (argument_list "("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" ( (string_literal ""DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*(undefined4 *)(*param_1 + 4)" * (cast_expression "(undefined4 *)(*param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(*param_1 + 8)" * (cast_expression "(undefined4 *)(*param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) )))) )))) ;) (if_statement "if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" if (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" { (if_statement "if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" { (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00044000(0);" (call_expression "FUN_00044000(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (goto_statement "goto LAB_001454c4;" goto statement_identifier ;) })) (expression_statement "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);" (assignment_expression "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" identifier = (call_expression "FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" identifier (argument_list "(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" ( number_literal , number_literal , (binary_expression "param_1 + 0xd" identifier + number_literal) , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "FUN_00044000(iVar12);" (call_expression "FUN_00044000(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" statement_identifier : (if_statement "if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 == iVar5) break;" if (parenthesized_expression "(iVar13 == iVar5)" ( (binary_expression "iVar13 == iVar5" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00145474;" goto statement_identifier ;) }))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e7e00(param_1[0xd]);" (call_expression "FUN_000e7e00(param_1[0xd])" identifier (argument_list "(param_1[0xd])" ( (subscript_expression "param_1[0xd]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar8 = FUN_000bfe40(param_1[0xd]);" (assignment_expression "iVar8 = FUN_000bfe40(param_1[0xd])" identifier = (call_expression "FUN_000bfe40(param_1[0xd])" identifier (argument_list "(param_1[0xd])" ( (subscript_expression "param_1[0xd]" identifier [ number_literal ]) )))) ;) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(iVar13 != iVar5)" ( (binary_expression "iVar13 != iVar5" identifier != identifier) )) ;)) })) (if_statement "if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" if (parenthesized_expression "(piVar11[1] != iVar13)" ( (binary_expression "piVar11[1] != iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" { (expression_statement "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);" (call_expression "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" identifier (argument_list "((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" ( (cast_expression "(void *)piVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ])) , (cast_expression "(void *)(piVar11[2] + iVar13 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[2] + iVar13 * 0xc)" ( (binary_expression "piVar11[2] + iVar13 * 0xc" (subscript_expression "piVar11[2]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0xc" identifier * number_literal)) ))) , (binary_expression "(piVar11[1] - iVar13) * 0xc" (parenthesized_expression "(piVar11[1] - iVar13)" ( (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - identifier) )) * number_literal) ))) ;) })) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) - identifier)) ;) (expression_statement "piVar11[1] = piVar11[1] - iVar13;" (assignment_expression "piVar11[1] = piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (if_statement "if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" if (parenthesized_expression "(local_c8[2] == 0)" ( (binary_expression "local_c8[2] == 0" (subscript_expression "local_c8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" { (expression_statement "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;" (assignment_expression "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) + number_literal)) ;) })) }))) (expression_statement "FUN_000521f0();" (call_expression "FUN_000521f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = *param_4 - local_44;\n    }" { (expression_statement "*param_4 = *param_4 - local_44;" (assignment_expression "*param_4 = *param_4 - local_44" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 - local_44" (pointer_expression "*param_4" * identifier) - identifier)) ;) })) }))) (labeled_statement "LAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" { comment (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid __regparm3 fts5IndexMergeLevel(Fts5Index *p,Fts5Structure **ppStruct,int iLvl,int *pnRem)\n\n{\n  int *piVar1;\n  sqlite3_stmt *psVar2;\n  Fts5Buffer *pBuf;\n  int iVar3;\n  byte bVar4;\n  ushort uVar5;\n  ushort uVar6;\n  sqlite3_stmt **__n;\n  uint uVar7;\n  Fts5StructureSegment *pFVar8;\n  sqlite3_blob *psVar9;\n  Fts5Structure *pOld;\n  bool bVar10;\n  Fts5Iter *pFVar11;\n  int iVar12;\n  Fts5Data *p_00;\n  char *zSql;\n  Fts5SegWriter *pFVar13;\n  sqlite3_stmt *psVar14;\n  int iVar15;\n  int iVar16;\n  Fts5SegIter *pFVar17;\n  Fts5SegWriter *pFVar18;\n  int iVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  sqlite3_stmt **in_stack_ffffff0c;\n  u8 *puVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  Fts5Index *local_d4;\n  int local_d0;\n  sqlite3_stmt *local_c8;\n  Fts5Iter *pIter;\n  Fts5Buffer term;\n  Fts5Buffer buf;\n  Fts5SegWriter writer;\n  u8 aHdr [4];\n  \n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = (Fts5Index *)*ppStruct;\n  pIter = (Fts5Iter *)0x0;\n  local_d0 = 0;\n  iVar12 = iLvl * 0xc + 0x14;\n  if (pnRem != (int *)0x0) {\n    local_d0 = *pnRem;\n  }\n  term.p = (u8 *)0x0;\n  iVar19 = p->pConfig->eDetail;\n  term.n = 0;\n  term.nSpace = 0;\n  pFVar13 = &writer;\n  for (iVar16 = 0x17; iVar16 != 0; iVar16 = iVar16 + -1) {\n    pFVar13->iSegid = 0;\n    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;\n  }\n  pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n  if (pFVar13 == (Fts5SegWriter *)0x0) {\n    if (p->rc != 0) goto LAB_00145058;\n    if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }\n    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);\n    if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }\n    p->rc = 7;\n  }\n  else {\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }\nLAB_00145058:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 fts5IndexMergeLevel(Fts5Index *p,Fts5Structure **ppStruct,int iLvl,int *pnRem)\n\n{\n  int *piVar1;\n  sqlite3_stmt *psVar2;\n  Fts5Buffer *pBuf;\n  int iVar3;\n  byte bVar4;\n  ushort uVar5;\n  ushort uVar6;\n  sqlite3_stmt **__n;\n  uint uVar7;\n  Fts5StructureSegment *pFVar8;\n  sqlite3_blob *psVar9;\n  Fts5Structure *pOld;\n  bool bVar10;\n  Fts5Iter *pFVar11;\n  int iVar12;\n  Fts5Data *p_00;\n  char *zSql;\n  Fts5SegWriter *pFVar13;\n  sqlite3_stmt *psVar14;\n  int iVar15;\n  int iVar16;\n  Fts5SegIter *pFVar17;\n  Fts5SegWriter *pFVar18;\n  int iVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  sqlite3_stmt **in_stack_ffffff0c;\n  u8 *puVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  Fts5Index *local_d4;\n  int local_d0;\n  sqlite3_stmt *local_c8;\n  Fts5Iter *pIter;\n  Fts5Buffer term;\n  Fts5Buffer buf;\n  Fts5SegWriter writer;\n  u8 aHdr [4];\n  \n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = (Fts5Index *)*ppStruct;\n  pIter = (Fts5Iter *)0x0;\n  local_d0 = 0;\n  iVar12 = iLvl * 0xc + 0x14;\n  if (pnRem != (int *)0x0) {\n    local_d0 = *pnRem;\n  }\n  term.p = (u8 *)0x0;\n  iVar19 = p->pConfig->eDetail;\n  term.n = 0;\n  term.nSpace = 0;\n  pFVar13 = &writer;\n  for (iVar16 = 0x17; iVar16 != 0; iVar16 = iVar16 + -1) {\n    pFVar13->iSegid = 0;\n    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;\n  }\n  pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n  if (pFVar13 == (Fts5SegWriter *)0x0) {\n    if (p->rc != 0) goto LAB_00145058;\n    if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }\n    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);\n    if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }\n    p->rc = 7;\n  }\n  else {\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }\nLAB_00145058:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "fts5IndexMergeLevel(Fts5Index *p,Fts5Structure **ppStruct,int iLvl,int *pnRem)" identifier (parameter_list "(Fts5Index *p,Fts5Structure **ppStruct,int iLvl,int *pnRem)" ( (parameter_declaration "Fts5Index *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "Fts5Structure **ppStruct" type_identifier (pointer_declarator "**ppStruct" * (pointer_declarator "*ppStruct" * identifier))) , (parameter_declaration "int iLvl" primitive_type identifier) , (parameter_declaration "int *pnRem" primitive_type (pointer_declarator "*pnRem" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  sqlite3_stmt *psVar2;\n  Fts5Buffer *pBuf;\n  int iVar3;\n  byte bVar4;\n  ushort uVar5;\n  ushort uVar6;\n  sqlite3_stmt **__n;\n  uint uVar7;\n  Fts5StructureSegment *pFVar8;\n  sqlite3_blob *psVar9;\n  Fts5Structure *pOld;\n  bool bVar10;\n  Fts5Iter *pFVar11;\n  int iVar12;\n  Fts5Data *p_00;\n  char *zSql;\n  Fts5SegWriter *pFVar13;\n  sqlite3_stmt *psVar14;\n  int iVar15;\n  int iVar16;\n  Fts5SegIter *pFVar17;\n  Fts5SegWriter *pFVar18;\n  int iVar19;\n  int in_GS_OFFSET;\n  bool bVar20;\n  sqlite3_stmt **in_stack_ffffff0c;\n  u8 *puVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  Fts5Index *local_d4;\n  int local_d0;\n  sqlite3_stmt *local_c8;\n  Fts5Iter *pIter;\n  Fts5Buffer term;\n  Fts5Buffer buf;\n  Fts5SegWriter writer;\n  u8 aHdr [4];\n  \n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = (Fts5Index *)*ppStruct;\n  pIter = (Fts5Iter *)0x0;\n  local_d0 = 0;\n  iVar12 = iLvl * 0xc + 0x14;\n  if (pnRem != (int *)0x0) {\n    local_d0 = *pnRem;\n  }\n  term.p = (u8 *)0x0;\n  iVar19 = p->pConfig->eDetail;\n  term.n = 0;\n  term.nSpace = 0;\n  pFVar13 = &writer;\n  for (iVar16 = 0x17; iVar16 != 0; iVar16 = iVar16 + -1) {\n    pFVar13->iSegid = 0;\n    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;\n  }\n  pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n  if (pFVar13 == (Fts5SegWriter *)0x0) {\n    if (p->rc != 0) goto LAB_00145058;\n    if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }\n    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);\n    if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }\n    p->rc = 7;\n  }\n  else {\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }\nLAB_00145058:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "sqlite3_stmt *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "Fts5Buffer *pBuf;" type_identifier (pointer_declarator "*pBuf" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "sqlite3_stmt **__n;" type_identifier (pointer_declarator "**__n" * (pointer_declarator "*__n" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "Fts5StructureSegment *pFVar8;" type_identifier (pointer_declarator "*pFVar8" * identifier) ;) (declaration "sqlite3_blob *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "Fts5Structure *pOld;" type_identifier (pointer_declarator "*pOld" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "Fts5Iter *pFVar11;" type_identifier (pointer_declarator "*pFVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "Fts5Data *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "char *zSql;" primitive_type (pointer_declarator "*zSql" * identifier) ;) (declaration "Fts5SegWriter *pFVar13;" type_identifier (pointer_declarator "*pFVar13" * identifier) ;) (declaration "sqlite3_stmt *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Fts5SegIter *pFVar17;" type_identifier (pointer_declarator "*pFVar17" * identifier) ;) (declaration "Fts5SegWriter *pFVar18;" type_identifier (pointer_declarator "*pFVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "sqlite3_stmt **in_stack_ffffff0c;" type_identifier (pointer_declarator "**in_stack_ffffff0c" * (pointer_declarator "*in_stack_ffffff0c" * identifier)) ;) (declaration "u8 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "Fts5Index *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "sqlite3_stmt *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "Fts5Iter *pIter;" type_identifier (pointer_declarator "*pIter" * identifier) ;) (declaration "Fts5Buffer term;" type_identifier identifier ;) (declaration "Fts5Buffer buf;" type_identifier identifier ;) (declaration "Fts5SegWriter writer;" type_identifier identifier ;) (declaration "u8 aHdr [4];" type_identifier (array_declarator "aHdr [4]" identifier [ number_literal ]) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (Fts5Index *)*ppStruct;" (assignment_expression "local_d4 = (Fts5Index *)*ppStruct" identifier = (cast_expression "(Fts5Index *)*ppStruct" ( (type_descriptor "Fts5Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppStruct" * identifier))) ;) (expression_statement "pIter = (Fts5Iter *)0x0;" (assignment_expression "pIter = (Fts5Iter *)0x0" identifier = (cast_expression "(Fts5Iter *)0x0" ( (type_descriptor "Fts5Iter *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = iLvl * 0xc + 0x14;" (assignment_expression "iVar12 = iLvl * 0xc + 0x14" identifier = (binary_expression "iLvl * 0xc + 0x14" (binary_expression "iLvl * 0xc" identifier * number_literal) + number_literal)) ;) (if_statement "if (pnRem != (int *)0x0) {\n    local_d0 = *pnRem;\n  }" if (parenthesized_expression "(pnRem != (int *)0x0)" ( (binary_expression "pnRem != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_d0 = *pnRem;\n  }" { (expression_statement "local_d0 = *pnRem;" (assignment_expression "local_d0 = *pnRem" identifier = (pointer_expression "*pnRem" * identifier)) ;) })) (expression_statement "term.p = (u8 *)0x0;" (assignment_expression "term.p = (u8 *)0x0" (field_expression "term.p" identifier . field_identifier) = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = p->pConfig->eDetail;" (assignment_expression "iVar19 = p->pConfig->eDetail" identifier = (field_expression "p->pConfig->eDetail" (field_expression "p->pConfig" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "term.n = 0;" (assignment_expression "term.n = 0" (field_expression "term.n" identifier . field_identifier) = number_literal) ;) (expression_statement "term.nSpace = 0;" (assignment_expression "term.nSpace = 0" (field_expression "term.nSpace" identifier . field_identifier) = number_literal) ;) (expression_statement "pFVar13 = &writer;" (assignment_expression "pFVar13 = &writer" identifier = (pointer_expression "&writer" & identifier)) ;) (for_statement "for (iVar16 = 0x17; iVar16 != 0; iVar16 = iVar16 + -1) {\n    pFVar13->iSegid = 0;\n    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;\n  }" for ( (assignment_expression "iVar16 = 0x17" identifier = number_literal) ; (binary_expression "iVar16 != 0" identifier != number_literal) ; (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n    pFVar13->iSegid = 0;\n    pFVar13 = (Fts5SegWriter *)&pFVar13->writer;\n  }" { (expression_statement "pFVar13->iSegid = 0;" (assignment_expression "pFVar13->iSegid = 0" (field_expression "pFVar13->iSegid" identifier -> field_identifier) = number_literal) ;) (expression_statement "pFVar13 = (Fts5SegWriter *)&pFVar13->writer;" (assignment_expression "pFVar13 = (Fts5SegWriter *)&pFVar13->writer" identifier = (cast_expression "(Fts5SegWriter *)&pFVar13->writer" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar13->writer" & (field_expression "pFVar13->writer" identifier -> field_identifier)))) ;) })) (expression_statement "pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc);" (assignment_expression "pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc)" identifier = (pointer_expression "*(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc)" * (cast_expression "(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc)" ( (type_descriptor "Fts5SegWriter **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_d4->iWriteRowid + iLvl * 0xc)" ( (binary_expression "(int)&local_d4->iWriteRowid + iLvl * 0xc" (cast_expression "(int)&local_d4->iWriteRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->iWriteRowid" & (field_expression "local_d4->iWriteRowid" identifier -> field_identifier))) + (binary_expression "iLvl * 0xc" identifier * number_literal)) ))))) ;) (if_statement "if (pFVar13 == (Fts5SegWriter *)0x0) {\n    if (p->rc != 0) goto LAB_00145058;\n    if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }\n    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);\n    if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }\n    p->rc = 7;\n  }\n  else {\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }" if (parenthesized_expression "(pFVar13 == (Fts5SegWriter *)0x0)" ( (binary_expression "pFVar13 == (Fts5SegWriter *)0x0" identifier == (cast_expression "(Fts5SegWriter *)0x0" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (p->rc != 0) goto LAB_00145058;\n    if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }\n    pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);\n    if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }\n    p->rc = 7;\n  }" { (if_statement "if (p->rc != 0) goto LAB_00145058;" if (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (if_statement "if (1999 < (int)local_d4->pHash) {\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }" if (parenthesized_expression "(1999 < (int)local_d4->pHash)" ( (binary_expression "1999 < (int)local_d4->pHash" number_literal < (cast_expression "(int)local_d4->pHash" ( (type_descriptor "int" primitive_type) ) (field_expression "local_d4->pHash" identifier -> field_identifier))) )) (compound_statement "{\n      p->rc = 0xd;\n      goto LAB_00145058;\n    }" { (expression_statement "p->rc = 0xd;" (assignment_expression "p->rc = 0xd" (field_expression "p->rc" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00145058;" goto statement_identifier ;) })) (expression_statement "pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem);" (assignment_expression "pFVar13 = (Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem)" identifier = (cast_expression "(Fts5SegWriter *)fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem)" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts5AllocateSegid(local_d4,(Fts5Structure *)pnRem)" identifier (argument_list "(local_d4,(Fts5Structure *)pnRem)" ( identifier , (cast_expression "(Fts5Structure *)pnRem" ( (type_descriptor "Fts5Structure *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (if_statement "if (local_d4->nPendingData + -1 == iLvl) {\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }" if (parenthesized_expression "(local_d4->nPendingData + -1 == iLvl)" ( (binary_expression "local_d4->nPendingData + -1 == iLvl" (binary_expression "local_d4->nPendingData + -1" (field_expression "local_d4->nPendingData" identifier -> field_identifier) + number_literal) == identifier) )) (compound_statement "{\n      pOld = *ppStruct;\n      if (p->rc != 0) goto LAB_00145058;\n      iVar16 = pOld->nLevel;\n      iVar15 = sqlite3_initialize();\n      if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }" { (expression_statement "pOld = *ppStruct;" (assignment_expression "pOld = *ppStruct" identifier = (pointer_expression "*ppStruct" * identifier)) ;) (if_statement "if (p->rc != 0) goto LAB_00145058;" if (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "iVar16 = pOld->nLevel;" (assignment_expression "iVar16 = pOld->nLevel" identifier = (field_expression "pOld->nLevel" identifier -> field_identifier)) ;) (expression_statement "iVar15 = sqlite3_initialize();" (assignment_expression "iVar15 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));\n        if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }\n      }" { (expression_statement "local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13));" (assignment_expression "local_d4 = (Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13))" identifier = (cast_expression "(Fts5Index *)sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13))" ( (type_descriptor "Fts5Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Realloc(pOld,CONCAT44(iVar12,pFVar13))" identifier (argument_list "(pOld,CONCAT44(iVar12,pFVar13))" ( identifier , (call_expression "CONCAT44(iVar12,pFVar13)" identifier (argument_list "(iVar12,pFVar13)" ( identifier , identifier ))) ))))) ;) (if_statement "if (local_d4 != (Fts5Index *)0x0) {\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }" if (parenthesized_expression "(local_d4 != (Fts5Index *)0x0)" ( (binary_expression "local_d4 != (Fts5Index *)0x0" identifier != (cast_expression "(Fts5Index *)0x0" ( (type_descriptor "Fts5Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);\n          *puVar23 = 0;\n          puVar23[1] = 0;\n          puVar23[2] = 0;\n          local_d4->nPendingData = local_d4->nPendingData + 1;\n          *ppStruct = (Fts5Structure *)local_d4;\n          goto LAB_0014574e;\n        }" { (expression_statement "puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc);" (assignment_expression "puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc)" identifier = (cast_expression "(undefined4 *)((int)&local_d4->iWriteRowid + iVar16 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->iWriteRowid + iVar16 * 0xc)" ( (binary_expression "(int)&local_d4->iWriteRowid + iVar16 * 0xc" (cast_expression "(int)&local_d4->iWriteRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->iWriteRowid" & (field_expression "local_d4->iWriteRowid" identifier -> field_identifier))) + (binary_expression "iVar16 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (expression_statement "puVar23[1] = 0;" (assignment_expression "puVar23[1] = 0" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar23[2] = 0;" (assignment_expression "puVar23[2] = 0" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_d4->nPendingData = local_d4->nPendingData + 1;" (assignment_expression "local_d4->nPendingData = local_d4->nPendingData + 1" (field_expression "local_d4->nPendingData" identifier -> field_identifier) = (binary_expression "local_d4->nPendingData + 1" (field_expression "local_d4->nPendingData" identifier -> field_identifier) + number_literal)) ;) (expression_statement "*ppStruct = (Fts5Structure *)local_d4;" (assignment_expression "*ppStruct = (Fts5Structure *)local_d4" (pointer_expression "*ppStruct" * identifier) = (cast_expression "(Fts5Structure *)local_d4" ( (type_descriptor "Fts5Structure *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0014574e;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }" else (compound_statement "{\nLAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;\n      psVar14 = (&local_d4->pWriter)[iLvl * 3];\n      iVar16 = sqlite3_initialize();\n      if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }\n    }" { (labeled_statement "LAB_0014574e:\n      if (p->rc != 0) goto LAB_00145058;" statement_identifier : (if_statement "if (p->rc != 0) goto LAB_00145058;" if (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;))) (expression_statement "psVar14 = (&local_d4->pWriter)[iLvl * 3];" (assignment_expression "psVar14 = (&local_d4->pWriter)[iLvl * 3]" identifier = (subscript_expression "(&local_d4->pWriter)[iLvl * 3]" (parenthesized_expression "(&local_d4->pWriter)" ( (pointer_expression "&local_d4->pWriter" & (field_expression "local_d4->pWriter" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ])) ;) (expression_statement "iVar16 = sqlite3_initialize();" (assignment_expression "iVar16 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)) {\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }" if (parenthesized_expression "((iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0))" ( (binary_expression "(iVar16 == 0) &&\n         (psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)" (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) && (parenthesized_expression "(psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0)" ( (comma_expression "psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13)),\n         psVar14 != (sqlite3_stmt *)0x0" (assignment_expression "psVar14 = (sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13))" identifier = (cast_expression "(sqlite3_stmt *)sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13))" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Realloc(psVar14,CONCAT44(iVar12,pFVar13))" identifier (argument_list "(psVar14,CONCAT44(iVar12,pFVar13))" ( identifier , (call_expression "CONCAT44(iVar12,pFVar13)" identifier (argument_list "(iVar12,pFVar13)" ( identifier , identifier ))) ))))) , (binary_expression "psVar14 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;\n        *(undefined4 *)psVar2 = 0;\n        *(undefined4 *)(psVar2 + 4) = 0;\n        *(undefined4 *)(psVar2 + 8) = 0;\n        (&local_d4->pWriter)[iLvl * 3] = psVar14;\n        if (p->rc != 0) goto LAB_00145058;\n        puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);\n        uVar22 = 0x1457e7;\n        fts5WriteInit(p,pFVar13,(int)puVar23);\n        psVar9 = (&local_d4->pReader)[iLvl * 3];\n        (&local_d4->pReader)[iLvl * 3] = psVar9 + 1;\n        local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;\n        *(undefined4 *)(local_c8 + 4) = 1;\n        *(Fts5SegWriter **)local_c8 = pFVar13;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);\n        pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);\n        goto LAB_001450d9;\n      }" { (expression_statement "psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc;" (assignment_expression "psVar2 = psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc" identifier = (binary_expression "psVar14 + (int)(&local_d4->pReader)[iLvl * 3] * 0xc" identifier + (binary_expression "(int)(&local_d4->pReader)[iLvl * 3] * 0xc" (cast_expression "(int)(&local_d4->pReader)[iLvl * 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ])) * number_literal))) ;) (expression_statement "*(undefined4 *)psVar2 = 0;" (assignment_expression "*(undefined4 *)psVar2 = 0" (pointer_expression "*(undefined4 *)psVar2" * (cast_expression "(undefined4 *)psVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(psVar2 + 4) = 0;" (assignment_expression "*(undefined4 *)(psVar2 + 4) = 0" (pointer_expression "*(undefined4 *)(psVar2 + 4)" * (cast_expression "(undefined4 *)(psVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2 + 4)" ( (binary_expression "psVar2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(psVar2 + 8) = 0;" (assignment_expression "*(undefined4 *)(psVar2 + 8) = 0" (pointer_expression "*(undefined4 *)(psVar2 + 8)" * (cast_expression "(undefined4 *)(psVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2 + 8)" ( (binary_expression "psVar2 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(&local_d4->pWriter)[iLvl * 3] = psVar14;" (assignment_expression "(&local_d4->pWriter)[iLvl * 3] = psVar14" (subscript_expression "(&local_d4->pWriter)[iLvl * 3]" (parenthesized_expression "(&local_d4->pWriter)" ( (pointer_expression "&local_d4->pWriter" & (field_expression "local_d4->pWriter" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) = identifier) ;) (if_statement "if (p->rc != 0) goto LAB_00145058;" if (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12);" (assignment_expression "puVar23 = (undefined4 *)((int)&local_d4->pConfig + iVar12)" identifier = (cast_expression "(undefined4 *)((int)&local_d4->pConfig + iVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->pConfig + iVar12)" ( (binary_expression "(int)&local_d4->pConfig + iVar12" (cast_expression "(int)&local_d4->pConfig" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->pConfig" & (field_expression "local_d4->pConfig" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "uVar22 = 0x1457e7;" (assignment_expression "uVar22 = 0x1457e7" identifier = number_literal) ;) (expression_statement "fts5WriteInit(p,pFVar13,(int)puVar23);" (call_expression "fts5WriteInit(p,pFVar13,(int)puVar23)" identifier (argument_list "(p,pFVar13,(int)puVar23)" ( identifier , identifier , (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "psVar9 = (&local_d4->pReader)[iLvl * 3];" (assignment_expression "psVar9 = (&local_d4->pReader)[iLvl * 3]" identifier = (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ])) ;) (expression_statement "(&local_d4->pReader)[iLvl * 3] = psVar9 + 1;" (assignment_expression "(&local_d4->pReader)[iLvl * 3] = psVar9 + 1" (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) = (binary_expression "psVar9 + 1" identifier + number_literal)) ;) (expression_statement "local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc;" (assignment_expression "local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc" identifier = (binary_expression "(&local_d4->pWriter)[iLvl * 3] + (int)psVar9 * 0xc" (subscript_expression "(&local_d4->pWriter)[iLvl * 3]" (parenthesized_expression "(&local_d4->pWriter)" ( (pointer_expression "&local_d4->pWriter" & (field_expression "local_d4->pWriter" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) + (binary_expression "(int)psVar9 * 0xc" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "*(undefined4 *)(local_c8 + 4) = 1;" (assignment_expression "*(undefined4 *)(local_c8 + 4) = 1" (pointer_expression "*(undefined4 *)(local_c8 + 4)" * (cast_expression "(undefined4 *)(local_c8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c8 + 4)" ( (binary_expression "local_c8 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(Fts5SegWriter **)local_c8 = pFVar13;" (assignment_expression "*(Fts5SegWriter **)local_c8 = pFVar13" (pointer_expression "*(Fts5SegWriter **)local_c8" * (cast_expression "(Fts5SegWriter **)local_c8" ( (type_descriptor "Fts5SegWriter **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1);" (assignment_expression "local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash->eDetail + 1)" (field_expression "local_d4->pHash" identifier -> field_identifier) = (cast_expression "(Fts5Hash *)((int)&local_d4->pHash->eDetail + 1)" ( (type_descriptor "Fts5Hash *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->pHash->eDetail + 1)" ( (binary_expression "(int)&local_d4->pHash->eDetail + 1" (cast_expression "(int)&local_d4->pHash->eDetail" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->pHash->eDetail" & (field_expression "local_d4->pHash->eDetail" (field_expression "local_d4->pHash" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) ;) (expression_statement "pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4);" (assignment_expression "pFVar13 = *(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4)" identifier = (pointer_expression "*(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4)" * (cast_expression "(Fts5SegWriter **)((int)&local_d4->iWriteRowid + iLvl * 0xc + 4)" ( (type_descriptor "Fts5SegWriter **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_d4->iWriteRowid + iLvl * 0xc + 4)" ( (binary_expression "(int)&local_d4->iWriteRowid + iLvl * 0xc + 4" (binary_expression "(int)&local_d4->iWriteRowid + iLvl * 0xc" (cast_expression "(int)&local_d4->iWriteRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->iWriteRowid" & (field_expression "local_d4->iWriteRowid" identifier -> field_identifier))) + (binary_expression "iLvl * 0xc" identifier * number_literal)) + number_literal) ))))) ;) (goto_statement "goto LAB_001450d9;" goto statement_identifier ;) })) }))) (expression_statement "p->rc = 7;" (assignment_expression "p->rc = 7" (field_expression "p->rc" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }" else (compound_statement "{\n    puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);\n    local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;\n    uVar22 = 0x1450c0;\n    fts5WriteInit(p,pFVar13,(int)puVar23);\n    writer.iBtPage = 0;\n    writer.writer.pgno = *(int *)(local_c8 + 8) + 1;\nLAB_001450d9:\n    bVar20 = false;\n    if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }\n    fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }\n    uVar22 = 0x145302;\n    fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));\n    pFVar11 = pIter;\n    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }\n    fts5MultiIterFree(pIter);\n    sqlite3Fts5BufferFree(&term);\n    if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }\n  }" { (expression_statement "puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc);" (assignment_expression "puVar23 = (undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc)" identifier = (cast_expression "(undefined4 *)((int)&local_d4->iWriteRowid + iLvl * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->iWriteRowid + iLvl * 0xc)" ( (binary_expression "(int)&local_d4->iWriteRowid + iLvl * 0xc" (cast_expression "(int)&local_d4->iWriteRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->iWriteRowid" & (field_expression "local_d4->iWriteRowid" identifier -> field_identifier))) + (binary_expression "iLvl * 0xc" identifier * number_literal)) )))) ;) (expression_statement "local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc;" (assignment_expression "local_c8 = (&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc" identifier = (binary_expression "(&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc + -0xc" (binary_expression "(&local_d4->pWriter)[iLvl * 3] + (int)(&local_d4->pReader)[iLvl * 3] * 0xc" (subscript_expression "(&local_d4->pWriter)[iLvl * 3]" (parenthesized_expression "(&local_d4->pWriter)" ( (pointer_expression "&local_d4->pWriter" & (field_expression "local_d4->pWriter" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) + (binary_expression "(int)(&local_d4->pReader)[iLvl * 3] * 0xc" (cast_expression "(int)(&local_d4->pReader)[iLvl * 3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ])) * number_literal)) + number_literal)) ;) (expression_statement "uVar22 = 0x1450c0;" (assignment_expression "uVar22 = 0x1450c0" identifier = number_literal) ;) (expression_statement "fts5WriteInit(p,pFVar13,(int)puVar23);" (call_expression "fts5WriteInit(p,pFVar13,(int)puVar23)" identifier (argument_list "(p,pFVar13,(int)puVar23)" ( identifier , identifier , (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "writer.iBtPage = 0;" (assignment_expression "writer.iBtPage = 0" (field_expression "writer.iBtPage" identifier . field_identifier) = number_literal) ;) (expression_statement "writer.writer.pgno = *(int *)(local_c8 + 8) + 1;" (assignment_expression "writer.writer.pgno = *(int *)(local_c8 + 8) + 1" (field_expression "writer.writer.pgno" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) = (binary_expression "*(int *)(local_c8 + 8) + 1" (pointer_expression "*(int *)(local_c8 + 8)" * (cast_expression "(int *)(local_c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_001450d9:\n    bVar20 = false;" statement_identifier : (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;)) (if_statement "if ((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001) {\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }" if (parenthesized_expression "((&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001)" ( (binary_expression "(&local_d4->pReader)[iLvl * 3] == (sqlite3_blob *)&DAT_00000001" (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) == (cast_expression "(sqlite3_blob *)&DAT_00000001" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n      bVar20 = local_d4->nPendingData == iLvl + 2;\n    }" { (expression_statement "bVar20 = local_d4->nPendingData == iLvl + 2;" (assignment_expression "bVar20 = local_d4->nPendingData == iLvl + 2" identifier = (binary_expression "local_d4->nPendingData == iLvl + 2" (field_expression "local_d4->nPendingData" identifier -> field_identifier) == (binary_expression "iLvl + 2" identifier + number_literal))) ;) })) (expression_statement "fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter);" (call_expression "fts5MultiIterNew(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter)" identifier (argument_list "(p,(Fts5Structure *)local_d4,0x20,(Fts5Colset *)0x0,(u8 *)0x0,0,iLvl,\n                     (int)pFVar13,&pIter)" ( identifier , (cast_expression "(Fts5Structure *)local_d4" ( (type_descriptor "Fts5Structure *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , identifier , (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&pIter" & identifier) ))) ;) (if_statement "if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }" if (parenthesized_expression "((p->rc == 0) && ((pIter->base).bEof == '\0'))" ( (binary_expression "(p->rc == 0) && ((pIter->base).bEof == '\0')" (parenthesized_expression "(p->rc == 0)" ( (binary_expression "p->rc == 0" (field_expression "p->rc" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((pIter->base).bEof == '\0')" ( (binary_expression "(pIter->base).bEof == '\0'" (field_expression "(pIter->base).bEof" (parenthesized_expression "(pIter->base)" ( (field_expression "pIter->base" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      piVar1 = &p->rc;\n      bVar10 = false;\n      pBuf = &writer.writer.buf;\n      do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );\n    }" { (expression_statement "piVar1 = &p->rc;" (assignment_expression "piVar1 = &p->rc" identifier = (pointer_expression "&p->rc" & (field_expression "p->rc" identifier -> field_identifier))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "pBuf = &writer.writer.buf;" (assignment_expression "pBuf = &writer.writer.buf" identifier = (pointer_expression "&writer.writer.buf" & (field_expression "writer.writer.buf" (field_expression "writer.writer" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      } while( true );" do (compound_statement "{\n        pFVar11 = pIter;\n        uVar5 = pIter->aFirst[1].iFirst;\n        __n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;\n        puVar21 = pIter->aSeg[uVar5].term.p;\n        if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }\n        if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }\n        fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));\n        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;\n      }" { (expression_statement "pFVar11 = pIter;" (assignment_expression "pFVar11 = pIter" identifier = identifier) ;) (expression_statement "uVar5 = pIter->aFirst[1].iFirst;" (assignment_expression "uVar5 = pIter->aFirst[1].iFirst" identifier = (field_expression "pIter->aFirst[1].iFirst" (subscript_expression "pIter->aFirst[1]" (field_expression "pIter->aFirst" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "__n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n;" (assignment_expression "__n = (sqlite3_stmt **)pIter->aSeg[uVar5].term.n" identifier = (cast_expression "(sqlite3_stmt **)pIter->aSeg[uVar5].term.n" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "pIter->aSeg[uVar5].term.n" (field_expression "pIter->aSeg[uVar5].term" (subscript_expression "pIter->aSeg[uVar5]" (field_expression "pIter->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier) . field_identifier))) ;) (expression_statement "puVar21 = pIter->aSeg[uVar5].term.p;" (assignment_expression "puVar21 = pIter->aSeg[uVar5].term.p" identifier = (field_expression "pIter->aSeg[uVar5].term.p" (field_expression "pIter->aSeg[uVar5].term" (subscript_expression "pIter->aSeg[uVar5]" (field_expression "pIter->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier) . field_identifier)) ;) (if_statement "if (((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))) {\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }" if (parenthesized_expression "(((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0))))" ( (binary_expression "((sqlite3_stmt **)term.n != __n) ||\n           ((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))" (parenthesized_expression "((sqlite3_stmt **)term.n != __n)" ( (binary_expression "(sqlite3_stmt **)term.n != __n" (cast_expression "(sqlite3_stmt **)term.n" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "term.n" identifier . field_identifier)) != identifier) )) || (parenthesized_expression "((__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)))" ( (parenthesized_expression "(__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0))" ( (binary_expression "__n != (sqlite3_stmt **)0x0 &&\n            (in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)" (binary_expression "__n != (sqlite3_stmt **)0x0" identifier != (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0)" ( (comma_expression "in_stack_ffffff0c = __n, iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0" (assignment_expression "in_stack_ffffff0c = __n" identifier = identifier) , (comma_expression "iVar12 = memcmp(puVar21,term.p,(size_t)__n), iVar12 != 0" (assignment_expression "iVar12 = memcmp(puVar21,term.p,(size_t)__n)" identifier = (call_expression "memcmp(puVar21,term.p,(size_t)__n)" identifier (argument_list "(puVar21,term.p,(size_t)__n)" ( identifier , (field_expression "term.p" identifier . field_identifier) , (cast_expression "(size_t)__n" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar12 != 0" identifier != number_literal))) ))) )) ))) )) (compound_statement "{\n          if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;\n          term.n = 0;\n          sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);\n          bVar10 = false;\n        }" { (if_statement "if ((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)) break;" if (parenthesized_expression "((pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten))" ( (binary_expression "(pnRem != (int *)0x0) && (local_d0 < writer.nLeafWritten)" (parenthesized_expression "(pnRem != (int *)0x0)" ( (binary_expression "pnRem != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_d0 < writer.nLeafWritten)" ( (binary_expression "local_d0 < writer.nLeafWritten" identifier < (field_expression "writer.nLeafWritten" identifier . field_identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "term.n = 0;" (assignment_expression "term.n = 0" (field_expression "term.n" identifier . field_identifier) = number_literal) ;) (expression_statement "sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21);" (call_expression "sqlite3Fts5BufferAppendBlob(piVar1,&term,(u32)__n,puVar21)" identifier (argument_list "(piVar1,&term,(u32)__n,puVar21)" ( identifier , (pointer_expression "&term" & identifier) , (cast_expression "(u32)__n" ( (type_descriptor "u32" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) })) (if_statement "if ((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))\n        {\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }" if (parenthesized_expression "((pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))))" ( (binary_expression "(pFVar11->aSeg[uVar5].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0')))" (parenthesized_expression "(pFVar11->aSeg[uVar5].nPos != 0)" ( (binary_expression "pFVar11->aSeg[uVar5].nPos != 0" (field_expression "pFVar11->aSeg[uVar5].nPos" (subscript_expression "pFVar11->aSeg[uVar5]" (field_expression "pFVar11->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier) != number_literal) )) || (parenthesized_expression "((!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0')))" ( (parenthesized_expression "(!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0'))" ( (binary_expression "!bVar20 && (pFVar11->aSeg[uVar5].bDel != '\0')" (unary_expression "!bVar20" ! identifier) && (parenthesized_expression "(pFVar11->aSeg[uVar5].bDel != '\0')" ( (binary_expression "pFVar11->aSeg[uVar5].bDel != '\0'" (field_expression "pFVar11->aSeg[uVar5].bDel" (subscript_expression "pFVar11->aSeg[uVar5]" (field_expression "pFVar11->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar12 = p->rc;\n          if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }\n          if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }\n          bVar4 = pFVar11->aSeg[uVar5].bDel;\n          if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }\n        }" { (expression_statement "iVar12 = p->rc;" (assignment_expression "iVar12 = p->rc" identifier = (field_expression "p->rc" identifier -> field_identifier)) ;) (if_statement "if (!bVar10 && iVar12 == 0) {\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }" if (parenthesized_expression "(!bVar10 && iVar12 == 0)" ( (binary_expression "!bVar10 && iVar12 == 0" (unary_expression "!bVar10" ! identifier) && (binary_expression "iVar12 == 0" identifier == number_literal)) )) (compound_statement "{\n            fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);\n            iVar12 = p->rc;\n            bVar10 = true;\n          }" { (expression_statement "fts5WriteAppendTerm(p,&writer,(int)__n,puVar21);" (call_expression "fts5WriteAppendTerm(p,&writer,(int)__n,puVar21)" identifier (argument_list "(p,&writer,(int)__n,puVar21)" ( identifier , (pointer_expression "&writer" & identifier) , (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "iVar12 = p->rc;" (assignment_expression "iVar12 = p->rc" identifier = (field_expression "p->rc" identifier -> field_identifier)) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) })) (if_statement "if (iVar12 == 0) {\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = pIter->aFirst[1].iFirst;\n            uVar7 = (uint)pIter->aSeg[uVar6].iRowid;\n            iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);\n            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }\n            if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }\n            if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }\n            writer.bFirstRowidInDoclist = '\0';\n            writer.bFirstRowidInPage = '\0';\n            writer.iPrevRowid._0_4_ = uVar7;\n            writer.iPrevRowid._4_4_ = iVar12;\n          }" { (expression_statement "uVar6 = pIter->aFirst[1].iFirst;" (assignment_expression "uVar6 = pIter->aFirst[1].iFirst" identifier = (field_expression "pIter->aFirst[1].iFirst" (subscript_expression "pIter->aFirst[1]" (field_expression "pIter->aFirst" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar7 = (uint)pIter->aSeg[uVar6].iRowid;" (assignment_expression "uVar7 = (uint)pIter->aSeg[uVar6].iRowid" identifier = (cast_expression "(uint)pIter->aSeg[uVar6].iRowid" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIter->aSeg[uVar6].iRowid" (subscript_expression "pIter->aSeg[uVar6]" (field_expression "pIter->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (expression_statement "iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);" (assignment_expression "iVar12 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4)" identifier = (pointer_expression "*(int *)((int)&pIter->aSeg[uVar6].iRowid + 4)" * (cast_expression "(int *)((int)&pIter->aSeg[uVar6].iRowid + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIter->aSeg[uVar6].iRowid + 4)" ( (binary_expression "(int)&pIter->aSeg[uVar6].iRowid + 4" (cast_expression "(int)&pIter->aSeg[uVar6].iRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIter->aSeg[uVar6].iRowid" & (field_expression "pIter->aSeg[uVar6].iRowid" (subscript_expression "pIter->aSeg[uVar6]" (field_expression "pIter->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }" if (parenthesized_expression "(p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n)" ( (binary_expression "p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n" (field_expression "p->pConfig->pgsz" (field_expression "p->pConfig" identifier -> field_identifier) -> field_identifier) <= (binary_expression "writer.writer.pgidx.n + writer.writer.buf.n" (field_expression "writer.writer.pgidx.n" (field_expression "writer.writer.pgidx" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) . field_identifier) + (field_expression "writer.writer.buf.n" (field_expression "writer.writer.buf" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n              uVar22 = 0x145a64;\n              fts5WriteFlushLeaf(p,&writer);\n            }" { (expression_statement "uVar22 = 0x145a64;" (assignment_expression "uVar22 = 0x145a64" identifier = number_literal) ;) (expression_statement "fts5WriteFlushLeaf(p,&writer);" (call_expression "fts5WriteFlushLeaf(p,&writer)" identifier (argument_list "(p,&writer)" ( identifier , (pointer_expression "&writer" & identifier) ))) ;) })) (if_statement "if (writer.bFirstRowidInPage != '\0') {\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }" if (parenthesized_expression "(writer.bFirstRowidInPage != '\0')" ( (binary_expression "writer.bFirstRowidInPage != '\0'" (field_expression "writer.bFirstRowidInPage" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;\n              fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));\n            }" { (expression_statement "*(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8;" (assignment_expression "*(ushort *)writer.writer.buf.p =\n                   (ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8" (pointer_expression "*(ushort *)writer.writer.buf.p" * (cast_expression "(ushort *)writer.writer.buf.p" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "writer.writer.buf.p" (field_expression "writer.writer.buf" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) . field_identifier))) = (binary_expression "(ushort)writer.writer.buf.n << 8 | (ushort)writer.writer.buf.n >> 8" (binary_expression "(ushort)writer.writer.buf.n << 8" (cast_expression "(ushort)writer.writer.buf.n" ( (type_descriptor "ushort" type_identifier) ) (field_expression "writer.writer.buf.n" (field_expression "writer.writer.buf" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) . field_identifier)) << number_literal) | (binary_expression "(ushort)writer.writer.buf.n >> 8" (cast_expression "(ushort)writer.writer.buf.n" ( (type_descriptor "ushort" type_identifier) ) (field_expression "writer.writer.buf.n" (field_expression "writer.writer.buf" (field_expression "writer.writer" identifier . field_identifier) . field_identifier) . field_identifier)) >> number_literal))) ;) (expression_statement "fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7));" (call_expression "fts5WriteDlidxAppend(p,&writer,CONCAT44(iVar12,uVar7))" identifier (argument_list "(p,&writer,CONCAT44(iVar12,uVar7))" ( identifier , (pointer_expression "&writer" & identifier) , (call_expression "CONCAT44(iVar12,uVar7)" identifier (argument_list "(iVar12,uVar7)" ( identifier , identifier ))) ))) ;) })) (if_statement "if (writer._56_2_ == 0) {\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }\n            else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }" if (parenthesized_expression "(writer._56_2_ == 0)" ( (binary_expression "writer._56_2_ == 0" (field_expression "writer._56_2_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));\n            }" { (expression_statement "sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid));" (call_expression "sqlite3Fts5BufferAppendVarint\n                        (piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid))" identifier (argument_list "(piVar1,pBuf,\n                         CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid))" ( identifier , identifier , (call_expression "CONCAT44((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid)" identifier (argument_list "((iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid),\n                                  uVar7 - (uint)writer.iPrevRowid)" ( (binary_expression "(iVar12 - writer.iPrevRowid._4_4_) -\n                                  (uint)(uVar7 < (uint)writer.iPrevRowid)" (parenthesized_expression "(iVar12 - writer.iPrevRowid._4_4_)" ( (binary_expression "iVar12 - writer.iPrevRowid._4_4_" identifier - (field_expression "writer.iPrevRowid._4_4_" (field_expression "writer.iPrevRowid" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar7 < (uint)writer.iPrevRowid)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < (uint)writer.iPrevRowid)" ( (binary_expression "uVar7 < (uint)writer.iPrevRowid" identifier < (cast_expression "(uint)writer.iPrevRowid" ( (type_descriptor "uint" type_identifier) ) (field_expression "writer.iPrevRowid" identifier . field_identifier))) )))) , (binary_expression "uVar7 - (uint)writer.iPrevRowid" identifier - (cast_expression "(uint)writer.iPrevRowid" ( (type_descriptor "uint" type_identifier) ) (field_expression "writer.iPrevRowid" identifier . field_identifier))) ))) ))) ;) }) (else_clause "else {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }" else (compound_statement "{\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));\n            }" { (expression_statement "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7));" (call_expression "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,CONCAT44(iVar12,uVar7))" identifier (argument_list "(piVar1,pBuf,CONCAT44(iVar12,uVar7))" ( identifier , identifier , (call_expression "CONCAT44(iVar12,uVar7)" identifier (argument_list "(iVar12,uVar7)" ( identifier , identifier ))) ))) ;) }))) (expression_statement "writer.bFirstRowidInDoclist = '\0';" (assignment_expression "writer.bFirstRowidInDoclist = '\0'" (field_expression "writer.bFirstRowidInDoclist" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "writer.bFirstRowidInPage = '\0';" (assignment_expression "writer.bFirstRowidInPage = '\0'" (field_expression "writer.bFirstRowidInPage" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "writer.iPrevRowid._0_4_ = uVar7;" (assignment_expression "writer.iPrevRowid._0_4_ = uVar7" (field_expression "writer.iPrevRowid._0_4_" (field_expression "writer.iPrevRowid" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "writer.iPrevRowid._4_4_ = iVar12;" (assignment_expression "writer.iPrevRowid._4_4_ = iVar12" (field_expression "writer.iPrevRowid._4_4_" (field_expression "writer.iPrevRowid" identifier . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "bVar4 = pFVar11->aSeg[uVar5].bDel;" (assignment_expression "bVar4 = pFVar11->aSeg[uVar5].bDel" identifier = (field_expression "pFVar11->aSeg[uVar5].bDel" (subscript_expression "pFVar11->aSeg[uVar5]" (field_expression "pFVar11->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if (iVar19 == 1) {\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }\n          else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }" if (parenthesized_expression "(iVar19 == 1)" ( (binary_expression "iVar19 == 1" identifier == number_literal) )) (compound_statement "{\n            if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }\n          }" { (if_statement "if ((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)) {\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }" if (parenthesized_expression "((bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos))" ( (binary_expression "(bVar4 != 0) &&\n               (sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)" (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos)" ( (comma_expression "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0), 0 < pFVar11->aSeg[uVar5].nPos" (call_expression "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0)" identifier (argument_list "(piVar1,pBuf,0)" ( identifier , identifier , number_literal ))) , (binary_expression "0 < pFVar11->aSeg[uVar5].nPos" number_literal < (field_expression "pFVar11->aSeg[uVar5].nPos" (subscript_expression "pFVar11->aSeg[uVar5]" (field_expression "pFVar11->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier))) ))) )) (compound_statement "{\n              sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);\n            }" { (expression_statement "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0);" (call_expression "sqlite3Fts5BufferAppendVarint(piVar1,pBuf,0)" identifier (argument_list "(piVar1,pBuf,0)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }" else (compound_statement "{\n            sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));\n            fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);\n          }" { (expression_statement "sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2));" (call_expression "sqlite3Fts5BufferAppendVarint\n                      (piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2))" identifier (argument_list "(piVar1,pBuf,(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2))" ( identifier , identifier , (call_expression "(longlong)(int)((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2)" (call_expression "(longlong)(int)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "((uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2)" ( (binary_expression "(uint)bVar4 + pFVar11->aSeg[uVar5].nPos * 2" (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier) + (binary_expression "pFVar11->aSeg[uVar5].nPos * 2" (field_expression "pFVar11->aSeg[uVar5].nPos" (subscript_expression "pFVar11->aSeg[uVar5]" (field_expression "pFVar11->aSeg" identifier -> field_identifier) [ identifier ]) . field_identifier) * number_literal)) ))) ))) ;) (expression_statement "fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback);" (call_expression "fts5ChunkIterate(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback)" identifier (argument_list "(p,pFVar11->aSeg + uVar5,&writer,fts5MergeChunkCallback)" ( identifier , (binary_expression "pFVar11->aSeg + uVar5" (field_expression "pFVar11->aSeg" identifier -> field_identifier) + identifier) , (pointer_expression "&writer" & identifier) , identifier ))) ;) }))) })) (expression_statement "fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22));" (call_expression "fts5MultiIterNext((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22))" identifier (argument_list "((Fts5Index *)0x0,(Fts5Iter *)0x0,(int)in_stack_ffffff0c,\n                          CONCAT44(pFVar13,uVar22))" ( (cast_expression "(Fts5Index *)0x0" ( (type_descriptor "Fts5Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Fts5Iter *)0x0" ( (type_descriptor "Fts5Iter *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int)in_stack_ffffff0c" ( (type_descriptor "int" primitive_type) ) identifier) , (call_expression "CONCAT44(pFVar13,uVar22)" identifier (argument_list "(pFVar13,uVar22)" ( identifier , identifier ))) ))) ;) (if_statement "if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;" if (parenthesized_expression "((p->rc != 0) || ((pIter->base).bEof != '\0'))" ( (binary_expression "(p->rc != 0) || ((pIter->base).bEof != '\0')" (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pIter->base).bEof != '\0')" ( (binary_expression "(pIter->base).bEof != '\0'" (field_expression "(pIter->base).bEof" (parenthesized_expression "(pIter->base)" ( (field_expression "pIter->base" identifier -> field_identifier) )) . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar22 = 0x145302;" (assignment_expression "uVar22 = 0x145302" identifier = number_literal) ;) (expression_statement "fts5WriteFinish(p,&writer,(int *)(local_c8 + 8));" (call_expression "fts5WriteFinish(p,&writer,(int *)(local_c8 + 8))" identifier (argument_list "(p,&writer,(int *)(local_c8 + 8))" ( identifier , (pointer_expression "&writer" & identifier) , (cast_expression "(int *)(local_c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) ))) ))) ;) (expression_statement "pFVar11 = pIter;" (assignment_expression "pFVar11 = pIter" identifier = identifier) ;) (if_statement "if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }\n    else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }" if (parenthesized_expression "((p->rc == 0) && ((pIter->base).bEof == '\0'))" ( (binary_expression "(p->rc == 0) && ((pIter->base).bEof == '\0')" (parenthesized_expression "(p->rc == 0)" ( (binary_expression "p->rc == 0" (field_expression "p->rc" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((pIter->base).bEof == '\0')" ( (binary_expression "(pIter->base).bEof == '\0'" (field_expression "(pIter->base).bEof" (parenthesized_expression "(pIter->base)" ( (field_expression "pIter->base" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar12 = pIter->nSeg;\n      pFVar17 = pIter->aSeg;\n      buf.p = (u8 *)0x0;\n      piVar1 = &p->rc;\n      buf.n = 0;\n      buf.nSpace = 0;\n      if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }\n      sqlite3Fts5BufferFree(&buf);\n      *puVar23 = pFVar13;\n    }" { (expression_statement "iVar12 = pIter->nSeg;" (assignment_expression "iVar12 = pIter->nSeg" identifier = (field_expression "pIter->nSeg" identifier -> field_identifier)) ;) (expression_statement "pFVar17 = pIter->aSeg;" (assignment_expression "pFVar17 = pIter->aSeg" identifier = (field_expression "pIter->aSeg" identifier -> field_identifier)) ;) (expression_statement "buf.p = (u8 *)0x0;" (assignment_expression "buf.p = (u8 *)0x0" (field_expression "buf.p" identifier . field_identifier) = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar1 = &p->rc;" (assignment_expression "piVar1 = &p->rc" identifier = (pointer_expression "&p->rc" & (field_expression "p->rc" identifier -> field_identifier))) ;) (expression_statement "buf.n = 0;" (assignment_expression "buf.n = 0" (field_expression "buf.n" identifier . field_identifier) = number_literal) ;) (expression_statement "buf.nSpace = 0;" (assignment_expression "buf.nSpace = 0" (field_expression "buf.nSpace" identifier . field_identifier) = number_literal) ;) (if_statement "if (0 < iVar12) {\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar19 = 0;\n        do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0));" do (compound_statement "{\n          pFVar8 = pFVar17->pSeg;\n          if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }\n          iVar19 = iVar19 + 1;\n        }" { (expression_statement "pFVar8 = pFVar17->pSeg;" (assignment_expression "pFVar8 = pFVar17->pSeg" identifier = (field_expression "pFVar17->pSeg" identifier -> field_identifier)) ;) (if_statement "if (pFVar8 != (Fts5StructureSegment *)0x0) {\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }" if (parenthesized_expression "(pFVar8 != (Fts5StructureSegment *)0x0)" ( (binary_expression "pFVar8 != (Fts5StructureSegment *)0x0" identifier != (cast_expression "(Fts5StructureSegment *)0x0" ( (type_descriptor "Fts5StructureSegment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }\n          }" { (if_statement "if (pFVar17->pLeaf == (Fts5Data *)0x0) {\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }\n            else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }" if (parenthesized_expression "(pFVar17->pLeaf == (Fts5Data *)0x0)" ( (binary_expression "pFVar17->pLeaf == (Fts5Data *)0x0" (field_expression "pFVar17->pLeaf" identifier -> field_identifier) == (cast_expression "(Fts5Data *)0x0" ( (type_descriptor "Fts5Data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pFVar8->pgnoLast = 0;\n              pFVar17->pSeg->pgnoFirst = 0;\n              iVar12 = pFVar11->nSeg;\n            }" { (expression_statement "pFVar8->pgnoLast = 0;" (assignment_expression "pFVar8->pgnoLast = 0" (field_expression "pFVar8->pgnoLast" identifier -> field_identifier) = number_literal) ;) (expression_statement "pFVar17->pSeg->pgnoFirst = 0;" (assignment_expression "pFVar17->pSeg->pgnoFirst = 0" (field_expression "pFVar17->pSeg->pgnoFirst" (field_expression "pFVar17->pSeg" identifier -> field_identifier) -> field_identifier) = number_literal) ;) (expression_statement "iVar12 = pFVar11->nSeg;" (assignment_expression "iVar12 = pFVar11->nSeg" identifier = (field_expression "pFVar11->nSeg" identifier -> field_identifier)) ;) }) (else_clause "else {\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }" else (compound_statement "{\n              iVar12 = pFVar8->iSegid;\n              iVar16 = pFVar17->iTermLeafOffset;\n              aHdr[0] = '\0';\n              aHdr[1] = '\0';\n              aHdr[2] = '\0';\n              aHdr[3] = '\0';\n              iVar15 = pFVar17->iTermLeafPgno;\n              puVar21 = (u8 *)0x1453b9;\n              p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));\n              if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }\n              iVar12 = pFVar11->nSeg;\n            }" { (expression_statement "iVar12 = pFVar8->iSegid;" (assignment_expression "iVar12 = pFVar8->iSegid" identifier = (field_expression "pFVar8->iSegid" identifier -> field_identifier)) ;) (expression_statement "iVar16 = pFVar17->iTermLeafOffset;" (assignment_expression "iVar16 = pFVar17->iTermLeafOffset" identifier = (field_expression "pFVar17->iTermLeafOffset" identifier -> field_identifier)) ;) (expression_statement "aHdr[0] = '\0';" (assignment_expression "aHdr[0] = '\0'" (subscript_expression "aHdr[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "aHdr[1] = '\0';" (assignment_expression "aHdr[1] = '\0'" (subscript_expression "aHdr[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "aHdr[2] = '\0';" (assignment_expression "aHdr[2] = '\0'" (subscript_expression "aHdr[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "aHdr[3] = '\0';" (assignment_expression "aHdr[3] = '\0'" (subscript_expression "aHdr[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar15 = pFVar17->iTermLeafPgno;" (assignment_expression "iVar15 = pFVar17->iTermLeafPgno" identifier = (field_expression "pFVar17->iTermLeafPgno" identifier -> field_identifier)) ;) (expression_statement "puVar21 = (u8 *)0x1453b9;" (assignment_expression "puVar21 = (u8 *)0x1453b9" identifier = (cast_expression "(u8 *)0x1453b9" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13));" (assignment_expression "p_00 = fts5DataRead(p,CONCAT44(puVar23,pFVar13))" identifier = (call_expression "fts5DataRead(p,CONCAT44(puVar23,pFVar13))" identifier (argument_list "(p,CONCAT44(puVar23,pFVar13))" ( identifier , (call_expression "CONCAT44(puVar23,pFVar13)" identifier (argument_list "(puVar23,pFVar13)" ( identifier , identifier ))) )))) ;) (if_statement "if (p_00 != (Fts5Data *)0x0) {\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }" if (parenthesized_expression "(p_00 != (Fts5Data *)0x0)" ( (binary_expression "p_00 != (Fts5Data *)0x0" identifier != (cast_expression "(Fts5Data *)0x0" ( (type_descriptor "Fts5Data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }\n              }" { (if_statement "if (p_00->nn < p_00->szLeaf) {\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }\n                else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }" if (parenthesized_expression "(p_00->nn < p_00->szLeaf)" ( (binary_expression "p_00->nn < p_00->szLeaf" (field_expression "p_00->nn" identifier -> field_identifier) < (field_expression "p_00->szLeaf" identifier -> field_identifier)) )) (compound_statement "{\n                  p->rc = 0x10b;\n                  sqlite3_free(p_00);\n                }" { (expression_statement "p->rc = 0x10b;" (assignment_expression "p->rc = 0x10b" (field_expression "p->rc" identifier -> field_identifier) = number_literal) ;) (expression_statement "sqlite3_free(p_00);" (call_expression "sqlite3_free(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) }) (else_clause "else {\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }" else (compound_statement "{\n                  if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }\n                  sqlite3_free(p_00);\n                }" { (if_statement "if (p_00->szLeaf < iVar16) {\n                    p->rc = 0x10b;\n                  }\n                  else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }" if (parenthesized_expression "(p_00->szLeaf < iVar16)" ( (binary_expression "p_00->szLeaf < iVar16" (field_expression "p_00->szLeaf" identifier -> field_identifier) < identifier) )) (compound_statement "{\n                    p->rc = 0x10b;\n                  }" { (expression_statement "p->rc = 0x10b;" (assignment_expression "p->rc = 0x10b" (field_expression "p->rc" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }" else (compound_statement "{\n                    buf.n = 0;\n                    if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);\n                    sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);\n                    if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }\n                    sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);\n                    iVar16 = pFVar17->iTermLeafPgno;\n                    if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }\n                    pFVar17->pSeg->pgnoFirst = iVar16;\n                    fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));\n                    fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);\n                  }" { (expression_statement "buf.n = 0;" (assignment_expression "buf.n = 0" (field_expression "buf.n" identifier . field_identifier) = number_literal) ;) (if_statement "if ((uint)buf.nSpace < (Fts5Buffer *)p_00->nn) {\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }" if (parenthesized_expression "((uint)buf.nSpace < (Fts5Buffer *)p_00->nn)" ( (binary_expression "(uint)buf.nSpace < (Fts5Buffer *)p_00->nn" (cast_expression "(uint)buf.nSpace" ( (type_descriptor "uint" type_identifier) ) (field_expression "buf.nSpace" identifier . field_identifier)) < (cast_expression "(Fts5Buffer *)p_00->nn" ( (type_descriptor "Fts5Buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_00->nn" identifier -> field_identifier))) )) (compound_statement "{\n                      sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);\n                    }" { (expression_statement "sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn);" (call_expression "sqlite3Fts5BufferSize(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn)" identifier (argument_list "(piVar1,&buf,(u32)&buf.nSpace,(Fts5Buffer *)p_00->nn)" ( identifier , (pointer_expression "&buf" & identifier) , (binary_expression "(u32)&buf.nSpace" (parenthesized_expression "(u32)" ( identifier )) & (field_expression "buf.nSpace" identifier . field_identifier)) , (cast_expression "(Fts5Buffer *)p_00->nn" ( (type_descriptor "Fts5Buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_00->nn" identifier -> field_identifier)) ))) ;) })) (expression_statement "sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr);" (call_expression "sqlite3Fts5BufferAppendBlob(piVar1,&buf,4,aHdr)" identifier (argument_list "(piVar1,&buf,4,aHdr)" ( identifier , (pointer_expression "&buf" & identifier) , number_literal , identifier ))) ;) (expression_statement "sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n);" (call_expression "sqlite3Fts5BufferAppendVarint(piVar1,&buf,(longlong)(pFVar17->term).n)" identifier (argument_list "(piVar1,&buf,(longlong)(pFVar17->term).n)" ( identifier , (pointer_expression "&buf" & identifier) , (field_expression "(longlong)(pFVar17->term).n" (call_expression "(longlong)(pFVar17->term)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(pFVar17->term)" ( (field_expression "pFVar17->term" identifier -> field_identifier) ))) . field_identifier) ))) ;) (expression_statement "sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p);" (call_expression "sqlite3Fts5BufferAppendBlob(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p)" identifier (argument_list "(piVar1,&buf,(pFVar17->term).n,(pFVar17->term).p)" ( identifier , (pointer_expression "&buf" & identifier) , (field_expression "(pFVar17->term).n" (parenthesized_expression "(pFVar17->term)" ( (field_expression "pFVar17->term" identifier -> field_identifier) )) . field_identifier) , (field_expression "(pFVar17->term).p" (parenthesized_expression "(pFVar17->term)" ( (field_expression "pFVar17->term" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16);" (call_expression "sqlite3Fts5BufferAppendBlob(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16)" identifier (argument_list "(piVar1,&buf,p_00->szLeaf - iVar16,p_00->p + iVar16)" ( identifier , (pointer_expression "&buf" & identifier) , (binary_expression "p_00->szLeaf - iVar16" (field_expression "p_00->szLeaf" identifier -> field_identifier) - identifier) , (binary_expression "p_00->p + iVar16" (field_expression "p_00->p" identifier -> field_identifier) + identifier) ))) ;) (if_statement "if (p->rc == 0) {\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }" if (parenthesized_expression "(p->rc == 0)" ( (binary_expression "p->rc == 0" (field_expression "p->rc" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                      *(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;\n                    }" { (expression_statement "*(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8;" (assignment_expression "*(ushort *)(buf.p + 2) = (ushort)buf.n << 8 | (ushort)buf.n >> 8" (pointer_expression "*(ushort *)(buf.p + 2)" * (cast_expression "(ushort *)(buf.p + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf.p + 2)" ( (binary_expression "buf.p + 2" (field_expression "buf.p" identifier . field_identifier) + number_literal) )))) = (binary_expression "(ushort)buf.n << 8 | (ushort)buf.n >> 8" (binary_expression "(ushort)buf.n << 8" (cast_expression "(ushort)buf.n" ( (type_descriptor "ushort" type_identifier) ) (field_expression "buf.n" identifier . field_identifier)) << number_literal) | (binary_expression "(ushort)buf.n >> 8" (cast_expression "(ushort)buf.n" ( (type_descriptor "ushort" type_identifier) ) (field_expression "buf.n" identifier . field_identifier)) >> number_literal))) ;) })) (expression_statement "sqlite3Fts5BufferAppendVarint(piVar1,&buf,4);" (call_expression "sqlite3Fts5BufferAppendVarint(piVar1,&buf,4)" identifier (argument_list "(piVar1,&buf,4)" ( identifier , (pointer_expression "&buf" & identifier) , number_literal ))) ;) (expression_statement "iVar16 = pFVar17->iTermLeafPgno;" (assignment_expression "iVar16 = pFVar17->iTermLeafPgno" identifier = (field_expression "pFVar17->iTermLeafPgno" identifier -> field_identifier)) ;) (if_statement "if (pFVar17->iLeafPgno == iVar16) {\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }" if (parenthesized_expression "(pFVar17->iLeafPgno == iVar16)" ( (binary_expression "pFVar17->iLeafPgno == iVar16" (field_expression "pFVar17->iLeafPgno" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                      if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }\n                    }" { (if_statement "if (pFVar17->iEndofDoclist < p_00->szLeaf) {\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }" if (parenthesized_expression "(pFVar17->iEndofDoclist < p_00->szLeaf)" ( (binary_expression "pFVar17->iEndofDoclist < p_00->szLeaf" (field_expression "pFVar17->iEndofDoclist" identifier -> field_identifier) < (field_expression "p_00->szLeaf" identifier -> field_identifier)) )) (compound_statement "{\n                        sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;\n                        sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);\n                        iVar16 = pFVar17->iTermLeafPgno;\n                      }" { (expression_statement "sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))\n                        ;" (call_expression "sqlite3Fts5BufferAppendVarint\n                                  (piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))" identifier (argument_list "(piVar1,&buf,\n                                   (longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5))" ( identifier , (pointer_expression "&buf" & identifier) , (call_expression "(longlong)(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5)" ( (binary_expression "buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf) + -5" (binary_expression "buf.n + (pFVar17->iEndofDoclist - p_00->szLeaf)" (field_expression "buf.n" identifier . field_identifier) + (parenthesized_expression "(pFVar17->iEndofDoclist - p_00->szLeaf)" ( (binary_expression "pFVar17->iEndofDoclist - p_00->szLeaf" (field_expression "pFVar17->iEndofDoclist" identifier -> field_identifier) - (field_expression "p_00->szLeaf" identifier -> field_identifier)) ))) + number_literal) ))) ))) ;) (expression_statement "sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff);" (call_expression "sqlite3Fts5BufferAppendBlob\n                                  (piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff)" identifier (argument_list "(piVar1,&buf,p_00->nn - pFVar17->iPgidxOff,\n                                   p_00->p + pFVar17->iPgidxOff)" ( identifier , (pointer_expression "&buf" & identifier) , (binary_expression "p_00->nn - pFVar17->iPgidxOff" (field_expression "p_00->nn" identifier -> field_identifier) - (field_expression "pFVar17->iPgidxOff" identifier -> field_identifier)) , (binary_expression "p_00->p + pFVar17->iPgidxOff" (field_expression "p_00->p" identifier -> field_identifier) + (field_expression "pFVar17->iPgidxOff" identifier -> field_identifier)) ))) ;) (expression_statement "iVar16 = pFVar17->iTermLeafPgno;" (assignment_expression "iVar16 = pFVar17->iTermLeafPgno" identifier = (field_expression "pFVar17->iTermLeafPgno" identifier -> field_identifier)) ;) })) })) (expression_statement "pFVar17->pSeg->pgnoFirst = iVar16;" (assignment_expression "pFVar17->pSeg->pgnoFirst = iVar16" (field_expression "pFVar17->pSeg->pgnoFirst" (field_expression "pFVar17->pSeg" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c));" (call_expression "fts5DataDelete(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c))" identifier (argument_list "(p,CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15),\n                                   CONCAT44(puVar21,in_stack_ffffff0c))" ( identifier , (call_expression "CONCAT44((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15)" identifier (argument_list "((iVar15 >> 0x1f) + iVar12 * 0x20,iVar15)" ( (binary_expression "(iVar15 >> 0x1f) + iVar12 * 0x20" (parenthesized_expression "(iVar15 >> 0x1f)" ( (binary_expression "iVar15 >> 0x1f" identifier >> number_literal) )) + (binary_expression "iVar12 * 0x20" identifier * number_literal)) , identifier ))) , (call_expression "CONCAT44(puVar21,in_stack_ffffff0c)" identifier (argument_list "(puVar21,in_stack_ffffff0c)" ( identifier , identifier ))) ))) ;) (expression_statement "fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13);" (call_expression "fts5DataWrite((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13)" identifier (argument_list "((Fts5Index *)buf.p,CONCAT44(in_stack_ffffff0c,buf.n),puVar21,\n                                  (int)pFVar13)" ( (cast_expression "(Fts5Index *)buf.p" ( (type_descriptor "Fts5Index *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "buf.p" identifier . field_identifier)) , (call_expression "CONCAT44(in_stack_ffffff0c,buf.n)" identifier (argument_list "(in_stack_ffffff0c,buf.n)" ( identifier , (field_expression "buf.n" identifier . field_identifier) ))) , identifier , (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "sqlite3_free(p_00);" (call_expression "sqlite3_free(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) }))) })) (expression_statement "iVar12 = pFVar11->nSeg;" (assignment_expression "iVar12 = pFVar11->nSeg" identifier = (field_expression "pFVar11->nSeg" identifier -> field_identifier)) ;) }))) })) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0))" ( (binary_expression "(iVar19 < iVar12) && (pFVar17 = pFVar17 + 1, p->rc == 0)" (parenthesized_expression "(iVar19 < iVar12)" ( (binary_expression "iVar19 < iVar12" identifier < identifier) )) && (parenthesized_expression "(pFVar17 = pFVar17 + 1, p->rc == 0)" ( (comma_expression "pFVar17 = pFVar17 + 1, p->rc == 0" (assignment_expression "pFVar17 = pFVar17 + 1" identifier = (binary_expression "pFVar17 + 1" identifier + number_literal)) , (binary_expression "p->rc == 0" (field_expression "p->rc" identifier -> field_identifier) == number_literal)) ))) )) ;) })) (expression_statement "sqlite3Fts5BufferFree(&buf);" (call_expression "sqlite3Fts5BufferFree(&buf)" identifier (argument_list "(&buf)" ( (pointer_expression "&buf" & identifier) ))) ;) (expression_statement "*puVar23 = pFVar13;" (assignment_expression "*puVar23 = pFVar13" (pointer_expression "*puVar23" * identifier) = identifier) ;) }) (else_clause "else {\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }" else (compound_statement "{\n      pFVar18 = (Fts5SegWriter *)0x0;\n      if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }\n      if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }\n      local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);\n      puVar23[1] = puVar23[1] - (int)pFVar13;\n      *puVar23 = 0;\n      if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }\n    }" { (expression_statement "pFVar18 = (Fts5SegWriter *)0x0;" (assignment_expression "pFVar18 = (Fts5SegWriter *)0x0" identifier = (cast_expression "(Fts5SegWriter *)0x0" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < (int)pFVar13) {\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }" if (parenthesized_expression "(0 < (int)pFVar13)" ( (binary_expression "0 < (int)pFVar13" number_literal < (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);\n      }" { (labeled_statement "LAB_00145474:\n        do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);" statement_identifier : (do_statement "do {\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        } while (pFVar13 != pFVar18);" do (compound_statement "{\n          iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);\n          fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));\n          if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }\nLAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }\n          pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n          uVar22 = 0x1454de;\n          sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));\n          sqlite3_step(p->pIdxDeleter);\n          iVar12 = sqlite3_reset(p->pIdxDeleter);\n          p->rc = iVar12;\n        }" { (expression_statement "iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2]);" (assignment_expression "iVar12 = *(int *)((int)pFVar18 * 0xc + puVar23[2])" identifier = (pointer_expression "*(int *)((int)pFVar18 * 0xc + puVar23[2])" * (cast_expression "(int *)((int)pFVar18 * 0xc + puVar23[2])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pFVar18 * 0xc + puVar23[2])" ( (binary_expression "(int)pFVar18 * 0xc + puVar23[2]" (binary_expression "(int)pFVar18 * 0xc" (cast_expression "(int)pFVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (subscript_expression "puVar23[2]" identifier [ number_literal ])) ))))) ;) (expression_statement "fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c));" (call_expression "fts5DataDelete(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c))" identifier (argument_list "(p,CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff),\n                         CONCAT44(uVar22,in_stack_ffffff0c))" ( identifier , (call_expression "CONCAT44((iVar12 + 1) * 0x20 + -1,0xffffffff)" identifier (argument_list "((iVar12 + 1) * 0x20 + -1,0xffffffff)" ( (binary_expression "(iVar12 + 1) * 0x20 + -1" (binary_expression "(iVar12 + 1) * 0x20" (parenthesized_expression "(iVar12 + 1)" ( (binary_expression "iVar12 + 1" identifier + number_literal) )) * number_literal) + number_literal) , number_literal ))) , (call_expression "CONCAT44(uVar22,in_stack_ffffff0c)" identifier (argument_list "(uVar22,in_stack_ffffff0c)" ( identifier , identifier ))) ))) ;) (if_statement "if (p->pIdxDeleter == (sqlite3_stmt *)0x0) {\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }" if (parenthesized_expression "(p->pIdxDeleter == (sqlite3_stmt *)0x0)" ( (binary_expression "p->pIdxDeleter == (sqlite3_stmt *)0x0" (field_expression "p->pIdxDeleter" identifier -> field_identifier) == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;\n            zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);\n            if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }\n            sqlite3_free(zSql);\n          }" { (expression_statement "in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName;" (assignment_expression "in_stack_ffffff0c = (sqlite3_stmt **)p->pConfig->zName" identifier = (cast_expression "(sqlite3_stmt **)p->pConfig->zName" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "p->pConfig->zName" (field_expression "p->pConfig" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);" (assignment_expression "zSql = sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb)" identifier = (call_expression "sqlite3_mprintf("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb)" identifier (argument_list "("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb)" ( (string_literal ""DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (field_expression "p->pConfig->zDb" (field_expression "p->pConfig" identifier -> field_identifier) -> field_identifier) )))) ;) (if_statement "if (p->rc == 0) {\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }" if (parenthesized_expression "(p->rc == 0)" ( (binary_expression "p->rc == 0" (field_expression "p->rc" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }\n              uVar22 = 0;\n              in_stack_ffffff0c = &p->pIdxDeleter;\n              iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);\n              p->rc = iVar19;\n            }" { (if_statement "if (zSql == (char *)0x0) {\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }" if (parenthesized_expression "(zSql == (char *)0x0)" ( (binary_expression "zSql == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                p->rc = 7;\n                sqlite3_free((void *)0x0);\n                goto LAB_001454c4;\n              }" { (expression_statement "p->rc = 7;" (assignment_expression "p->rc = 7" (field_expression "p->rc" identifier -> field_identifier) = number_literal) ;) (expression_statement "sqlite3_free((void *)0x0);" (call_expression "sqlite3_free((void *)0x0)" identifier (argument_list "((void *)0x0)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (goto_statement "goto LAB_001454c4;" goto statement_identifier ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "in_stack_ffffff0c = &p->pIdxDeleter;" (assignment_expression "in_stack_ffffff0c = &p->pIdxDeleter" identifier = (pointer_expression "&p->pIdxDeleter" & (field_expression "p->pIdxDeleter" identifier -> field_identifier))) ;) (expression_statement "iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13);" (assignment_expression "iVar19 = sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13)" identifier = (call_expression "sqlite3LockAndPrepare\n                                 (p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13)" identifier (argument_list "(p->pConfig->db,zSql,0x85,0,(Vdbe *)&p->pIdxDeleter,\n                                  (sqlite3_stmt **)0x0,(char **)pFVar13)" ( (field_expression "p->pConfig->db" (field_expression "p->pConfig" identifier -> field_identifier) -> field_identifier) , identifier , number_literal , number_literal , (cast_expression "(Vdbe *)&p->pIdxDeleter" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p->pIdxDeleter" & (field_expression "p->pIdxDeleter" identifier -> field_identifier))) , (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(char **)pFVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (expression_statement "p->rc = iVar19;" (assignment_expression "p->rc = iVar19" (field_expression "p->rc" identifier -> field_identifier) = identifier) ;) })) (expression_statement "sqlite3_free(zSql);" (call_expression "sqlite3_free(zSql)" identifier (argument_list "(zSql)" ( identifier ))) ;) })) (labeled_statement "LAB_001454c4:\n          if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }" statement_identifier : (if_statement "if (p->rc != 0) {\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }" if (parenthesized_expression "(p->rc != 0)" ( (binary_expression "p->rc != 0" (field_expression "p->rc" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n            pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);\n            if (pFVar13 == pFVar18) break;\n            goto LAB_00145474;\n          }" { (expression_statement "pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);" (assignment_expression "pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1)" identifier = (cast_expression "(Fts5SegWriter *)((int)&pFVar18->iSegid + 1)" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar18->iSegid + 1)" ( (binary_expression "(int)&pFVar18->iSegid + 1" (cast_expression "(int)&pFVar18->iSegid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar18->iSegid" & (field_expression "pFVar18->iSegid" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (pFVar13 == pFVar18) break;" if (parenthesized_expression "(pFVar13 == pFVar18)" ( (binary_expression "pFVar13 == pFVar18" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00145474;" goto statement_identifier ;) }))) (expression_statement "pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1);" (assignment_expression "pFVar18 = (Fts5SegWriter *)((int)&pFVar18->iSegid + 1)" identifier = (cast_expression "(Fts5SegWriter *)((int)&pFVar18->iSegid + 1)" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar18->iSegid + 1)" ( (binary_expression "(int)&pFVar18->iSegid + 1" (cast_expression "(int)&pFVar18->iSegid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar18->iSegid" & (field_expression "pFVar18->iSegid" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "uVar22 = 0x1454de;" (assignment_expression "uVar22 = 0x1454de" identifier = number_literal) ;) (expression_statement "sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13));" (call_expression "sqlite3_bind_int64(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13))" identifier (argument_list "(p->pIdxDeleter,iVar12,CONCAT44(puVar23,pFVar13))" ( (field_expression "p->pIdxDeleter" identifier -> field_identifier) , identifier , (call_expression "CONCAT44(puVar23,pFVar13)" identifier (argument_list "(puVar23,pFVar13)" ( identifier , identifier ))) ))) ;) (expression_statement "sqlite3_step(p->pIdxDeleter);" (call_expression "sqlite3_step(p->pIdxDeleter)" identifier (argument_list "(p->pIdxDeleter)" ( (field_expression "p->pIdxDeleter" identifier -> field_identifier) ))) ;) (expression_statement "iVar12 = sqlite3_reset(p->pIdxDeleter);" (assignment_expression "iVar12 = sqlite3_reset(p->pIdxDeleter)" identifier = (call_expression "sqlite3_reset(p->pIdxDeleter)" identifier (argument_list "(p->pIdxDeleter)" ( (field_expression "p->pIdxDeleter" identifier -> field_identifier) )))) ;) (expression_statement "p->rc = iVar12;" (assignment_expression "p->rc = iVar12" (field_expression "p->rc" identifier -> field_identifier) = identifier) ;) }) while (parenthesized_expression "(pFVar13 != pFVar18)" ( (binary_expression "pFVar13 != pFVar18" identifier != identifier) )) ;)) })) (if_statement "if ((Fts5SegWriter *)puVar23[1] != pFVar13) {\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }" if (parenthesized_expression "((Fts5SegWriter *)puVar23[1] != pFVar13)" ( (binary_expression "(Fts5SegWriter *)puVar23[1] != pFVar13" (cast_expression "(Fts5SegWriter *)puVar23[1]" ( (type_descriptor "Fts5SegWriter *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar23[1]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n        memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);\n      }" { (expression_statement "memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc);" (call_expression "memmove((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc)" identifier (argument_list "((void *)puVar23[2],(void *)((int)puVar23[2] + (int)pFVar13 * 0xc),\n                ((int)puVar23[1] - (int)pFVar13) * 0xc)" ( (cast_expression "(void *)puVar23[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar23[2]" identifier [ number_literal ])) , (cast_expression "(void *)((int)puVar23[2] + (int)pFVar13 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23[2] + (int)pFVar13 * 0xc)" ( (binary_expression "(int)puVar23[2] + (int)pFVar13 * 0xc" (cast_expression "(int)puVar23[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[2]" identifier [ number_literal ])) + (binary_expression "(int)pFVar13 * 0xc" (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , (binary_expression "((int)puVar23[1] - (int)pFVar13) * 0xc" (parenthesized_expression "((int)puVar23[1] - (int)pFVar13)" ( (binary_expression "(int)puVar23[1] - (int)pFVar13" (cast_expression "(int)puVar23[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[1]" identifier [ number_literal ])) - (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) })) (expression_statement "local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13);" (assignment_expression "local_d4->pHash = (Fts5Hash *)((int)local_d4->pHash - (int)pFVar13)" (field_expression "local_d4->pHash" identifier -> field_identifier) = (cast_expression "(Fts5Hash *)((int)local_d4->pHash - (int)pFVar13)" ( (type_descriptor "Fts5Hash *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_d4->pHash - (int)pFVar13)" ( (binary_expression "(int)local_d4->pHash - (int)pFVar13" (cast_expression "(int)local_d4->pHash" ( (type_descriptor "int" primitive_type) ) (field_expression "local_d4->pHash" identifier -> field_identifier)) - (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar23[1] = puVar23[1] - (int)pFVar13;" (assignment_expression "puVar23[1] = puVar23[1] - (int)pFVar13" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = (binary_expression "puVar23[1] - (int)pFVar13" (subscript_expression "puVar23[1]" identifier [ number_literal ]) - (cast_expression "(int)pFVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (if_statement "if (*(int *)(local_c8 + 8) == 0) {\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }" if (parenthesized_expression "(*(int *)(local_c8 + 8) == 0)" ( (binary_expression "*(int *)(local_c8 + 8) == 0" (pointer_expression "*(int *)(local_c8 + 8)" * (cast_expression "(int *)(local_c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c8 + 8)" ( (binary_expression "local_c8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        (&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;\n        local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);\n      }" { (expression_statement "(&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1;" (assignment_expression "(&local_d4->pReader)[iLvl * 3] = (&local_d4->pReader)[iLvl * 3] + -1" (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) = (binary_expression "(&local_d4->pReader)[iLvl * 3] + -1" (subscript_expression "(&local_d4->pReader)[iLvl * 3]" (parenthesized_expression "(&local_d4->pReader)" ( (pointer_expression "&local_d4->pReader" & (field_expression "local_d4->pReader" identifier -> field_identifier)) )) [ (binary_expression "iLvl * 3" identifier * number_literal) ]) + number_literal)) ;) (expression_statement "local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3);" (assignment_expression "local_d4->pHash = (Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3)" (field_expression "local_d4->pHash" identifier -> field_identifier) = (cast_expression "(Fts5Hash *)((int)&local_d4->pHash[-1].aSlot + 3)" ( (type_descriptor "Fts5Hash *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->pHash[-1].aSlot + 3)" ( (binary_expression "(int)&local_d4->pHash[-1].aSlot + 3" (cast_expression "(int)&local_d4->pHash[-1].aSlot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->pHash[-1].aSlot" & (field_expression "local_d4->pHash[-1].aSlot" (subscript_expression "local_d4->pHash[-1]" (field_expression "local_d4->pHash" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) })) }))) (expression_statement "fts5MultiIterFree(pIter);" (call_expression "fts5MultiIterFree(pIter)" identifier (argument_list "(pIter)" ( identifier ))) ;) (expression_statement "sqlite3Fts5BufferFree(&term);" (call_expression "sqlite3Fts5BufferFree(&term)" identifier (argument_list "(&term)" ( (pointer_expression "&term" & identifier) ))) ;) (if_statement "if (pnRem != (int *)0x0) {\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }" if (parenthesized_expression "(pnRem != (int *)0x0)" ( (binary_expression "pnRem != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pnRem = *pnRem - writer.nLeafWritten;\n    }" { (expression_statement "*pnRem = *pnRem - writer.nLeafWritten;" (assignment_expression "*pnRem = *pnRem - writer.nLeafWritten" (pointer_expression "*pnRem" * identifier) = (binary_expression "*pnRem - writer.nLeafWritten" (pointer_expression "*pnRem" * identifier) - (field_expression "writer.nLeafWritten" identifier . field_identifier))) ;) })) }))) (labeled_statement "LAB_00145058:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar3 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int param_3,int *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "undefined4 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "void *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "size_t local_94;" primitive_type identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "int local_80 [3];" primitive_type (array_declarator "local_80 [3]" identifier [ number_literal ]) ;) (declaration "ushort *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined2 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type 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 "local_d4 = *param_2;" (assignment_expression "local_d4 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = param_3 * 0xc + 0x14;" (assignment_expression "iVar5 = param_3 * 0xc + 0x14" identifier = (binary_expression "param_3 * 0xc + 0x14" (binary_expression "param_3 * 0xc" identifier * number_literal) + number_literal)) ;) (if_statement "if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_d0 = *param_4;\n  }" { (expression_statement "local_d0 = *param_4;" (assignment_expression "local_d0 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })) (expression_statement "local_98 = (void *)0x0;" (assignment_expression "local_98 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(*param_1 + 0x30);" (assignment_expression "iVar8 = *(int *)(*param_1 + 0x30)" identifier = (pointer_expression "*(int *)(*param_1 + 0x30)" * (cast_expression "(int *)(*param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "piVar11 = local_80;" (assignment_expression "piVar11 = local_80" identifier = identifier) ;) (for_statement "for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" for ( (assignment_expression "iVar13 = 0x17" identifier = number_literal) ; (binary_expression "iVar13 != 0" identifier != number_literal) ; (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ) (compound_statement "{\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" { (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc)" identifier = (pointer_expression "*(int *)(local_d4 + 0x14 + param_3 * 0xc)" * (cast_expression "(int *)(local_d4 + 0x14 + param_3 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x14 + param_3 * 0xc)" ( (binary_expression "local_d4 + 0x14 + param_3 * 0xc" (binary_expression "local_d4 + 0x14" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal)) ))))) ;) (if_statement "if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }" { (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (if_statement "if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" if (parenthesized_expression "(1999 < *(int *)(local_d4 + 0xc))" ( (binary_expression "1999 < *(int *)(local_d4 + 0xc)" number_literal < (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" { (expression_statement "param_1[8] = 0xd;" (assignment_expression "param_1[8] = 0xd" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00145058;" goto statement_identifier ;) })) (expression_statement "uVar9 = FUN_00047b60();" (assignment_expression "uVar9 = FUN_00047b60()" identifier = (call_expression "FUN_00047b60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" if (parenthesized_expression "(*(int *)(local_d4 + 0x10) + -1 == param_3)" ( (binary_expression "*(int *)(local_d4 + 0x10) + -1 == param_3" (binary_expression "*(int *)(local_d4 + 0x10) + -1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) + number_literal) == identifier) )) (compound_statement "{\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }" { (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "iVar13 = *(int *)(*param_2 + 0x10);" (assignment_expression "iVar13 = *(int *)(*param_2 + 0x10)" identifier = (pointer_expression "*(int *)(*param_2 + 0x10)" * (cast_expression "(int *)(*param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" { (expression_statement "local_d4 = FUN_00055930();" (assignment_expression "local_d4 = FUN_00055930()" identifier = (call_expression "FUN_00055930()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" if (parenthesized_expression "(local_d4 != 0)" ( (binary_expression "local_d4 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" { (expression_statement "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);" (assignment_expression "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" identifier = (cast_expression "(undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" ( (binary_expression "local_d4 + 8 + (iVar13 * 3 + 3) * 4" (binary_expression "local_d4 + 8" identifier + number_literal) + (binary_expression "(iVar13 * 3 + 3) * 4" (parenthesized_expression "(iVar13 * 3 + 3)" ( (binary_expression "iVar13 * 3 + 3" (binary_expression "iVar13 * 3" identifier * number_literal) + number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;" (assignment_expression "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*param_2 = local_d4;" (assignment_expression "*param_2 = local_d4" (pointer_expression "*param_2" * identifier) = identifier) ;) (goto_statement "goto LAB_0014574e;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" else (compound_statement "{\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" { (labeled_statement "LAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;" statement_identifier : (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;))) (expression_statement "iVar13 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar13 = local_d4 + (param_3 + 1) * 0xc" identifier = (binary_expression "local_d4 + (param_3 + 1) * 0xc" identifier + (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" if (parenthesized_expression "((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0))" ( (binary_expression "(iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar10 = FUN_00055930(), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00055930(), iVar10 != 0" (assignment_expression "iVar10 = FUN_00055930()" identifier = (call_expression "FUN_00055930()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" { (expression_statement "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);" (assignment_expression "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" ( (binary_expression "iVar10 + *(int *)(iVar13 + 0x18) * 0xc" identifier + (binary_expression "*(int *)(iVar13 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar13 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar13 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_1[8] != 0) goto LAB_00145058;" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00145058;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" identifier = (cast_expression "(int *)(iVar5 + local_d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + local_d4)" ( (binary_expression "iVar5 + local_d4" identifier + identifier) )))) ;) (expression_statement "FUN_00100e40();" (call_expression "FUN_00100e40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)(iVar13 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar13 + 0x18)" identifier = (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar13 + 0x18) = iVar5 + 1;" (assignment_expression "*(int *)(iVar13 + 0x18) = iVar5 + 1" (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) )))) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" ( (binary_expression "*(int *)(iVar13 + 0x1c) + iVar5 * 0xc" (pointer_expression "*(int *)(iVar13 + 0x1c)" * (cast_expression "(int *)(iVar13 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar5 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "local_c8[1] = 1;" (assignment_expression "local_c8[1] = 1" (subscript_expression "local_c8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*local_c8 = uVar9;" (assignment_expression "*local_c8 = uVar9" (pointer_expression "*local_c8" * identifier) = identifier) ;) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc)" identifier = (pointer_expression "*(int *)(local_d4 + 0x18 + param_3 * 0xc)" * (cast_expression "(int *)(local_d4 + 0x18 + param_3 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x18 + param_3 * 0xc)" ( (binary_expression "local_d4 + 0x18 + param_3 * 0xc" (binary_expression "local_d4 + 0x18" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_001450d9;" goto statement_identifier ;) })) }))) (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" else (compound_statement "{\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" { (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" identifier = (cast_expression "(int *)(iVar5 + local_d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + local_d4)" ( (binary_expression "iVar5 + local_d4" identifier + identifier) )))) ;) (expression_statement "iVar5 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar5 = local_d4 + (param_3 + 1) * 0xc" identifier = (binary_expression "local_d4 + (param_3 + 1) * 0xc" identifier + (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" ( (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc" (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc" (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) + number_literal) + (binary_expression "*(int *)(iVar5 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "FUN_00100e40(iVar13,piVar11,local_80);" (call_expression "FUN_00100e40(iVar13,piVar11,local_80)" identifier (argument_list "(iVar13,piVar11,local_80)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_80[1] = local_c8[2] + 1;" (assignment_expression "local_80[1] = local_c8[2] + 1" (subscript_expression "local_80[1]" identifier [ number_literal ]) = (binary_expression "local_c8[2] + 1" (subscript_expression "local_c8[2]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;" statement_identifier : (expression_statement "local_c4 = local_d4 + 0x20 + param_3 * 0xc;" (assignment_expression "local_c4 = local_d4 + 0x20 + param_3 * 0xc" identifier = (binary_expression "local_d4 + 0x20 + param_3 * 0xc" (binary_expression "local_d4 + 0x20" identifier + number_literal) + (binary_expression "param_3 * 0xc" identifier * number_literal))) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" if (parenthesized_expression "(*(int *)(local_c4 + 4) == 1)" ( (binary_expression "*(int *)(local_c4 + 4) == 1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" { (expression_statement "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;" (assignment_expression "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2" identifier = (binary_expression "*(int *)(local_d4 + 0x10) == param_3 + 2" (pointer_expression "*(int *)(local_d4 + 0x10)" * (cast_expression "(int *)(local_d4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0x10)" ( (binary_expression "local_d4 + 0x10" identifier + number_literal) )))) == (binary_expression "param_3 + 2" identifier + number_literal))) ;) })) (expression_statement "FUN_00143110(0,0,0,param_3,iVar13,&local_9c);" (call_expression "FUN_00143110(0,0,0,param_3,iVar13,&local_9c)" identifier (argument_list "(0,0,0,param_3,iVar13,&local_9c)" ( number_literal , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_9c" & identifier) ))) ;) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" if (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" ( (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (do_statement "do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );" do (compound_statement "{\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      }" { (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" identifier = identifier) ;) (expression_statement "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);" (assignment_expression "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" identifier = (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" ( (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" * (cast_expression "(int *)(local_9c + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x40)" ( (binary_expression "local_9c + 0x40" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = uVar6 * 0x58 + local_9c;" (assignment_expression "iVar10 = uVar6 * 0x58 + local_9c" identifier = (binary_expression "uVar6 * 0x58 + local_9c" (binary_expression "uVar6 * 0x58" identifier * number_literal) + identifier)) ;) (expression_statement "__n = *(size_t *)(iVar10 + 0x84);" (assignment_expression "__n = *(size_t *)(iVar10 + 0x84)" identifier = (pointer_expression "*(size_t *)(iVar10 + 0x84)" * (cast_expression "(size_t *)(iVar10 + 0x84)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x84)" ( (binary_expression "iVar10 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "__s1 = *(void **)(iVar10 + 0x80);" (assignment_expression "__s1 = *(void **)(iVar10 + 0x80)" identifier = (pointer_expression "*(void **)(iVar10 + 0x80)" * (cast_expression "(void **)(iVar10 + 0x80)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x80)" ( (binary_expression "iVar10 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" if (parenthesized_expression "((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))" ( (binary_expression "(local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" (parenthesized_expression "(local_94 != __n)" ( (binary_expression "local_94 != __n" identifier != identifier) )) || (parenthesized_expression "((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" ( (parenthesized_expression "(__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))" ( (binary_expression "__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" (binary_expression "__n != 0" identifier != number_literal) && (parenthesized_expression "(iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" ( (comma_expression "iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0" (assignment_expression "iVar10 = memcmp(__s1,local_98,__n)" identifier = (call_expression "memcmp(__s1,local_98,__n)" identifier (argument_list "(__s1,local_98,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" { (if_statement "if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;" if (parenthesized_expression "((param_4 != (int *)0x0) && (local_d0 < local_44))" ( (binary_expression "(param_4 != (int *)0x0) && (local_d0 < local_44)" (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_d0 < local_44)" ( (binary_expression "local_d0 < local_44" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "FUN_0009a550(__s1);" (call_expression "FUN_0009a550(__s1)" identifier (argument_list "(__s1)" ( identifier ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) })) (expression_statement "iVar10 = uVar6 * 0x58 + iVar5;" (assignment_expression "iVar10 = uVar6 * 0x58 + iVar5" identifier = (binary_expression "uVar6 * 0x58 + iVar5" (binary_expression "uVar6 * 0x58" identifier * number_literal) + identifier)) ;) (if_statement "if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" if (parenthesized_expression "((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))))" ( (binary_expression "(*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" (parenthesized_expression "(*(int *)(iVar10 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x94) != 0" (pointer_expression "*(int *)(iVar10 + 0x94)" * (cast_expression "(int *)(iVar10 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x94)" ( (binary_expression "iVar10 + 0x94" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" ( (parenthesized_expression "(!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))" ( (binary_expression "!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')" (unary_expression "!bVar15" ! identifier) && (parenthesized_expression "(*(char *)(iVar10 + 0x98) != '\0')" ( (binary_expression "*(char *)(iVar10 + 0x98) != '\0'" (pointer_expression "*(char *)(iVar10 + 0x98)" * (cast_expression "(char *)(iVar10 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x98)" ( (binary_expression "iVar10 + 0x98" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" { (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" if (parenthesized_expression "(!bVar4 && iVar10 == 0)" ( (binary_expression "!bVar4 && iVar10 == 0" (unary_expression "!bVar4" ! identifier) && (binary_expression "iVar10 == 0" identifier == number_literal)) )) (compound_statement "{\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" { (expression_statement "FUN_0010df50(__s1);" (call_expression "FUN_0010df50(__s1)" identifier (argument_list "(__s1)" ( identifier ))) ;) (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (if_statement "if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" { (expression_statement "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;" (assignment_expression "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" identifier = (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" ( (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" * (cast_expression "(int *)(local_9c + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x40)" ( (binary_expression "local_9c + 0x40" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ;) (expression_statement "uVar2 = *(uint *)(local_9c + 0x8c + iVar10);" (assignment_expression "uVar2 = *(uint *)(local_9c + 0x8c + iVar10)" identifier = (pointer_expression "*(uint *)(local_9c + 0x8c + iVar10)" * (cast_expression "(uint *)(local_9c + 0x8c + iVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x8c + iVar10)" ( (binary_expression "local_9c + 0x8c + iVar10" (binary_expression "local_9c + 0x8c" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar10 = *(int *)(local_9c + 0x90 + iVar10);" (assignment_expression "iVar10 = *(int *)(local_9c + 0x90 + iVar10)" identifier = (pointer_expression "*(int *)(local_9c + 0x90 + iVar10)" * (cast_expression "(int *)(local_9c + 0x90 + iVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x90 + iVar10)" ( (binary_expression "local_9c + 0x90 + iVar10" (binary_expression "local_9c + 0x90" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }" if (parenthesized_expression "(*(int *)(*param_1 + 0x44) <= local_64 + local_70)" ( (binary_expression "*(int *)(*param_1 + 0x44) <= local_64 + local_70" (pointer_expression "*(int *)(*param_1 + 0x44)" * (cast_expression "(int *)(*param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x44)" ( (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" * identifier) + number_literal) )))) <= (binary_expression "local_64 + local_70" identifier + identifier)) )) (compound_statement "{\n              FUN_001087a0();\n            }" { (expression_statement "FUN_001087a0();" (call_expression "FUN_001087a0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" if (parenthesized_expression "(local_48._1_1_ != '\0')" ( (binary_expression "local_48._1_1_ != '\0'" (field_expression "local_48._1_1_" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" { (expression_statement "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;" (assignment_expression "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8" (pointer_expression "*local_74" * identifier) = (binary_expression "(ushort)local_70 << 8 | (ushort)local_70 >> 8" (binary_expression "(ushort)local_70 << 8" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)local_70 >> 8" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "FUN_00126590(uVar2,iVar10);" (call_expression "FUN_00126590(uVar2,iVar10)" identifier (argument_list "(uVar2,iVar10)" ( identifier , identifier ))) ;) })) (if_statement "if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }" { (expression_statement "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));" (call_expression "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" identifier (argument_list "(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" ( (binary_expression "uVar2 - local_50" identifier - identifier) , (binary_expression "(iVar10 - local_4c) - (uint)(uVar2 < local_50)" (parenthesized_expression "(iVar10 - local_4c)" ( (binary_expression "iVar10 - local_4c" identifier - identifier) )) - (call_expression "(uint)(uVar2 < local_50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < local_50)" ( (binary_expression "uVar2 < local_50" identifier < identifier) )))) ))) ;) }) (else_clause "else {\n              FUN_0009b360(uVar2,iVar10);\n            }" else (compound_statement "{\n              FUN_0009b360(uVar2,iVar10);\n            }" { (expression_statement "FUN_0009b360(uVar2,iVar10);" (call_expression "FUN_0009b360(uVar2,iVar10)" identifier (argument_list "(uVar2,iVar10)" ( identifier , identifier ))) ;) }))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "local_4c = iVar10;" (assignment_expression "local_4c = iVar10" identifier = identifier) ;) })) (expression_statement "iVar5 = iVar5 + uVar6 * 0x58;" (assignment_expression "iVar5 = iVar5 + uVar6 * 0x58" identifier = (binary_expression "iVar5 + uVar6 * 0x58" identifier + (binary_expression "uVar6 * 0x58" identifier * number_literal))) ;) (if_statement "if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }" { (if_statement "if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)))" ( (binary_expression "(*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" (parenthesized_expression "(*(byte *)(iVar5 + 0x98) != 0)" ( (binary_expression "*(byte *)(iVar5 + 0x98) != 0" (pointer_expression "*(byte *)(iVar5 + 0x98)" * (cast_expression "(byte *)(iVar5 + 0x98)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" ( (comma_expression "FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)" (call_expression "FUN_0009b360(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) , (binary_expression "0 < *(int *)(iVar5 + 0x94)" number_literal < (pointer_expression "*(int *)(iVar5 + 0x94)" * (cast_expression "(int *)(iVar5 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))))) ))) )) (compound_statement "{\n              FUN_0009b360(0,0);\n            }" { (expression_statement "FUN_0009b360(0,0);" (call_expression "FUN_0009b360(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) })) }) (else_clause "else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" else (compound_statement "{\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" { (expression_statement "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;" (assignment_expression "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" identifier = (binary_expression "(uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" (binary_expression "(uint)*(byte *)(iVar5 + 0x98)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar5 + 0x98)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar5 + 0x94) * 2" (pointer_expression "*(int *)(iVar5 + 0x94)" * (cast_expression "(int *)(iVar5 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x94)" ( (binary_expression "iVar5 + 0x94" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "FUN_0009b360(iVar5,iVar5 >> 0x1f);" (call_expression "FUN_0009b360(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_001148c0(FUN_0011d990);" (call_expression "FUN_001148c0(FUN_0011d990)" identifier (argument_list "(FUN_0011d990)" ( identifier ))) ;) }))) })) (expression_statement "FUN_00142ae0(0,0);" (call_expression "FUN_00142ae0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (if_statement "if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;" if (parenthesized_expression "((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0'))" ( (binary_expression "(param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')" (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(*(char *)(local_9c + 0x10) != '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) != '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_0010e2d0();" (call_expression "FUN_0010e2d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" identifier = identifier) ;) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" if (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" ( (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" ( (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" * (cast_expression "(char *)(local_9c + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x10)" ( (binary_expression "local_9c + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }" { (expression_statement "iVar8 = *(int *)(local_9c + 0x2c);" (assignment_expression "iVar8 = *(int *)(local_9c + 0x2c)" identifier = (pointer_expression "*(int *)(local_9c + 0x2c)" * (cast_expression "(int *)(local_9c + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x2c)" ( (binary_expression "local_9c + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "piVar14 = (int *)(local_9c + 0x44);" (assignment_expression "piVar14 = (int *)(local_9c + 0x44)" identifier = (cast_expression "(int *)(local_9c + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 0x44)" ( (binary_expression "local_9c + 0x44" identifier + number_literal) )))) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));" do (compound_statement "{\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        }" { (expression_statement "piVar7 = (int *)*piVar14;" (assignment_expression "piVar7 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" { (if_statement "if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" if (parenthesized_expression "(piVar14[3] == 0)" ( (binary_expression "piVar14[3] == 0" (subscript_expression "piVar14[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" { (expression_statement "piVar7[2] = 0;" (assignment_expression "piVar7[2] = 0" (subscript_expression "piVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(*piVar14 + 4) = 0;" (assignment_expression "*(undefined4 *)(*piVar14 + 4) = 0" (pointer_expression "*(undefined4 *)(*piVar14 + 4)" * (cast_expression "(undefined4 *)(*piVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" else (compound_statement "{\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" { (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar12 = piVar14[8];" (assignment_expression "iVar12 = piVar14[8]" identifier = (subscript_expression "piVar14[8]" identifier [ number_literal ])) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = piVar14[7];" (assignment_expression "iVar3 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = (int *)FUN_001133e0();" (assignment_expression "piVar7 = (int *)FUN_001133e0()" identifier = (cast_expression "(int *)FUN_001133e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001133e0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" { (if_statement "if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" if (parenthesized_expression "(piVar7[1] < piVar7[2])" ( (binary_expression "piVar7[1] < piVar7[2]" (subscript_expression "piVar7[1]" identifier [ number_literal ]) < (subscript_expression "piVar7[2]" identifier [ number_literal ])) )) (compound_statement "{\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }" { (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) }) (else_clause "else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" else (compound_statement "{\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" { (if_statement "if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" if (parenthesized_expression "(piVar7[2] < iVar12)" ( (binary_expression "piVar7[2] < iVar12" (subscript_expression "piVar7[2]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                    param_1[8] = 0x10b;\n                  }" { (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" else (compound_statement "{\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (if_statement "if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }" if (parenthesized_expression "(local_84 < (uint)piVar7[1])" ( (binary_expression "local_84 < (uint)piVar7[1]" identifier < (cast_expression "(uint)piVar7[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                      FUN_0009a490(piVar7[1]);\n                    }" { (expression_statement "FUN_0009a490(piVar7[1]);" (call_expression "FUN_0009a490(piVar7[1])" identifier (argument_list "(piVar7[1])" ( (subscript_expression "piVar7[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_0009a550(&local_24);" (call_expression "FUN_0009a550(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (expression_statement "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);" (call_expression "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f)" identifier (argument_list "(piVar14[0x10],piVar14[0x10] >> 0x1f)" ( (subscript_expression "piVar14[0x10]" identifier [ number_literal ]) , (binary_expression "piVar14[0x10] >> 0x1f" (subscript_expression "piVar14[0x10]" identifier [ number_literal ]) >> number_literal) ))) ;) (expression_statement "FUN_0009a550(piVar14[0xf]);" (call_expression "FUN_0009a550(piVar14[0xf])" identifier (argument_list "(piVar14[0xf])" ( (subscript_expression "piVar14[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0009a550(iVar12 + *piVar7);" (call_expression "FUN_0009a550(iVar12 + *piVar7)" identifier (argument_list "(iVar12 + *piVar7)" ( (binary_expression "iVar12 + *piVar7" identifier + (pointer_expression "*piVar7" * identifier)) ))) ;) (if_statement "if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" if (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" { (expression_statement "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;" (assignment_expression "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8" (pointer_expression "*(ushort *)(local_8c + 2)" * (cast_expression "(ushort *)(local_8c + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_8c + 2)" ( (binary_expression "local_8c + 2" identifier + number_literal) )))) = (binary_expression "(ushort)local_88 << 8 | (ushort)local_88 >> 8" (binary_expression "(ushort)local_88 << 8" (cast_expression "(ushort)local_88" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)local_88 >> 8" (cast_expression "(ushort)local_88" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;) })) (expression_statement "FUN_0009b360(4,0);" (call_expression "FUN_0009b360(4,0)" identifier (argument_list "(4,0)" ( number_literal , number_literal ))) ;) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) (if_statement "if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" if (parenthesized_expression "(piVar14[2] == iVar12)" ( (binary_expression "piVar14[2] == iVar12" (subscript_expression "piVar14[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" { (if_statement "if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" if (parenthesized_expression "(piVar14[10] < piVar7[2])" ( (binary_expression "piVar14[10] < piVar7[2]" (subscript_expression "piVar14[10]" identifier [ number_literal ]) < (subscript_expression "piVar7[2]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" { (expression_statement "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;" (assignment_expression "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5" identifier = (binary_expression "local_88 + (piVar14[10] - piVar7[2]) + -5" (binary_expression "local_88 + (piVar14[10] - piVar7[2])" identifier + (parenthesized_expression "(piVar14[10] - piVar7[2])" ( (binary_expression "piVar14[10] - piVar7[2]" (subscript_expression "piVar14[10]" identifier [ number_literal ]) - (subscript_expression "piVar7[2]" identifier [ number_literal ])) ))) + number_literal)) ;) (expression_statement "FUN_0009b360(iVar12,iVar12 >> 0x1f);" (call_expression "FUN_0009b360(iVar12,iVar12 >> 0x1f)" identifier (argument_list "(iVar12,iVar12 >> 0x1f)" ( identifier , (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_0009a550(piVar14[9] + *piVar7);" (call_expression "FUN_0009a550(piVar14[9] + *piVar7)" identifier (argument_list "(piVar14[9] + *piVar7)" ( (binary_expression "piVar14[9] + *piVar7" (subscript_expression "piVar14[9]" identifier [ number_literal ]) + (pointer_expression "*piVar7" * identifier)) ))) ;) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" identifier = (subscript_expression "piVar14[7]" identifier [ number_literal ])) ;) })) })) (expression_statement "*(int *)(*piVar14 + 4) = iVar12;" (assignment_expression "*(int *)(*piVar14 + 4) = iVar12" (pointer_expression "*(int *)(*piVar14 + 4)" * (cast_expression "(int *)(*piVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);" (call_expression "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" identifier (argument_list "(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" ( identifier , (binary_expression "(iVar3 >> 0x1f) + iVar8 * 0x20" (parenthesized_expression "(iVar3 >> 0x1f)" ( (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) )) + (binary_expression "iVar8 * 0x20" identifier * number_literal)) ))) ;) (expression_statement "FUN_00108640(local_8c,local_88);" (call_expression "FUN_00108640(local_8c,local_88)" identifier (argument_list "(local_8c,local_88)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" identifier (argument_list "(piVar7)" ( identifier ))) ;) }))) })) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) ))))) ;) }))) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0))" ( (binary_expression "(iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0)" (parenthesized_expression "(iVar10 < iVar8)" ( (binary_expression "iVar10 < iVar8" identifier < identifier) )) && (parenthesized_expression "(piVar14 = piVar14 + 0x16, param_1[8] == 0)" ( (comma_expression "piVar14 = piVar14 + 0x16, param_1[8] == 0" (assignment_expression "piVar14 = piVar14 + 0x16" identifier = (binary_expression "piVar14 + 0x16" identifier + number_literal)) , (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal)) ))) )) ;) })) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" identifier (argument_list "()" ( ))) ;) (expression_statement "*piVar11 = iVar13;" (assignment_expression "*piVar11 = iVar13" (pointer_expression "*piVar11" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" else (compound_statement "{\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" { (labeled_statement "LAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" statement_identifier : (do_statement "do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" do (compound_statement "{\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        }" { (expression_statement "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);" (assignment_expression "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2])" identifier = (pointer_expression "*(int *)(iVar5 * 0xc + piVar11[2])" * (cast_expression "(int *)(iVar5 * 0xc + piVar11[2])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 * 0xc + piVar11[2])" ( (binary_expression "iVar5 * 0xc + piVar11[2]" (binary_expression "iVar5 * 0xc" identifier * number_literal) + (subscript_expression "piVar11[2]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar10 = iVar8 >> 0x1f;" (assignment_expression "iVar10 = iVar8 >> 0x1f" identifier = (binary_expression "iVar8 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);" (call_expression "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1)" identifier (argument_list "(0xffffffff,(iVar8 + 1) * 0x20 + -1)" ( number_literal , (binary_expression "(iVar8 + 1) * 0x20 + -1" (binary_expression "(iVar8 + 1) * 0x20" (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )) * number_literal) + number_literal) ))) ;) (if_statement "if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" if (parenthesized_expression "(param_1[0xd] == 0)" ( (binary_expression "param_1[0xd] == 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" { (expression_statement "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));" (assignment_expression "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" identifier = (call_expression "FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" identifier (argument_list "("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" ( (string_literal ""DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*(undefined4 *)(*param_1 + 4)" * (cast_expression "(undefined4 *)(*param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)(*param_1 + 8)" * (cast_expression "(undefined4 *)(*param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) )))) )))) ;) (if_statement "if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" if (parenthesized_expression "(param_1[8] == 0)" ( (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" { (if_statement "if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" { (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00044000(0);" (call_expression "FUN_00044000(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (goto_statement "goto LAB_001454c4;" goto statement_identifier ;) })) (expression_statement "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);" (assignment_expression "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" identifier = (call_expression "FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" identifier (argument_list "(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" ( number_literal , number_literal , (binary_expression "param_1 + 0xd" identifier + number_literal) , number_literal , identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "FUN_00044000(iVar12);" (call_expression "FUN_00044000(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" statement_identifier : (if_statement "if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" if (parenthesized_expression "(param_1[8] != 0)" ( (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iVar13 == iVar5) break;" if (parenthesized_expression "(iVar13 == iVar5)" ( (binary_expression "iVar13 == iVar5" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00145474;" goto statement_identifier ;) }))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e7e00(param_1[0xd]);" (call_expression "FUN_000e7e00(param_1[0xd])" identifier (argument_list "(param_1[0xd])" ( (subscript_expression "param_1[0xd]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar8 = FUN_000bfe40(param_1[0xd]);" (assignment_expression "iVar8 = FUN_000bfe40(param_1[0xd])" identifier = (call_expression "FUN_000bfe40(param_1[0xd])" identifier (argument_list "(param_1[0xd])" ( (subscript_expression "param_1[0xd]" identifier [ number_literal ]) )))) ;) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(iVar13 != iVar5)" ( (binary_expression "iVar13 != iVar5" identifier != identifier) )) ;)) })) (if_statement "if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" if (parenthesized_expression "(piVar11[1] != iVar13)" ( (binary_expression "piVar11[1] != iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" { (expression_statement "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);" (call_expression "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" identifier (argument_list "((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" ( (cast_expression "(void *)piVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[2]" identifier [ number_literal ])) , (cast_expression "(void *)(piVar11[2] + iVar13 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[2] + iVar13 * 0xc)" ( (binary_expression "piVar11[2] + iVar13 * 0xc" (subscript_expression "piVar11[2]" identifier [ number_literal ]) + (binary_expression "iVar13 * 0xc" identifier * number_literal)) ))) , (binary_expression "(piVar11[1] - iVar13) * 0xc" (parenthesized_expression "(piVar11[1] - iVar13)" ( (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - identifier) )) * number_literal) ))) ;) })) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) - identifier)) ;) (expression_statement "piVar11[1] = piVar11[1] - iVar13;" (assignment_expression "piVar11[1] = piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (if_statement "if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" if (parenthesized_expression "(local_c8[2] == 0)" ( (binary_expression "local_c8[2] == 0" (subscript_expression "local_c8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" { (expression_statement "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;" (assignment_expression "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" * (cast_expression "(int *)(local_c4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 4)" ( (binary_expression "local_c4 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) = (binary_expression "*(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" * (cast_expression "(int *)(local_d4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d4 + 0xc)" ( (binary_expression "local_d4 + 0xc" identifier + number_literal) )))) + number_literal)) ;) })) }))) (expression_statement "FUN_000521f0();" (call_expression "FUN_000521f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = *param_4 - local_44;\n    }" { (expression_statement "*param_4 = *param_4 - local_44;" (assignment_expression "*param_4 = *param_4 - local_44" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 - local_44" (pointer_expression "*param_4" * identifier) - identifier)) ;) })) }))) (labeled_statement "LAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00153870();\n  }" { (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 ;) (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 = (binary_expression (binary_expression IDENT * LIT) + 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 = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != 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 (pointer_expression * IDENT) + LIT) ))))) ;) (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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_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 *)) ) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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) )))) + LIT) + (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (binary_expression IDENT + LIT))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT , IDENT , IDENT , (pointer_expression & 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 = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (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 IDENT < IDENT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + 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) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (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) )))) <= (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (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) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( LIT , LIT ))) , (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (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) )))) * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (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 ')) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (pointer_expression * IDENT)) ))) ;) (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) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + 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 ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (binary_expression IDENT + LIT) , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * LIT) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) - IDENT)) ;) })) }))) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00144f80(int *param_1,int *param_2,int param_3,int *param_4)" (identifier "FUN_00144f80") (parameter_list "(int *param_1,int *param_2,int param_3,int *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  uint uVar2;\n  int iVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  int local_d4;\n  int local_d0;\n  undefined4 *local_c8;\n  int local_c4;\n  int local_9c;\n  void *local_98;\n  size_t local_94;\n  undefined4 local_90;\n  int local_8c;\n  int local_88;\n  uint local_84;\n  int local_80 [3];\n  ushort *local_74;\n  int local_70;\n  int local_64;\n  uint local_50;\n  int local_4c;\n  undefined2 local_48;\n  int local_44;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_d4 = *param_2;\n  local_9c = 0;\n  local_d0 = 0;\n  iVar5 = param_3 * 0xc + 0x14;\n  if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }\n  local_98 = (void *)0x0;\n  iVar8 = *(int *)(*param_1 + 0x30);\n  local_94 = 0;\n  local_90 = 0;\n  piVar11 = local_80;\n  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }\n  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);\n  if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }\nLAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__s1;" (primitive_type "void") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "int local_d4;" (primitive_type "int") (identifier "local_d4") (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "undefined4 *local_c8;" (type_identifier "undefined4") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "void *local_98;" (primitive_type "void") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "size_t local_94;" (primitive_type "size_t") (identifier "local_94") (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "uint local_84;" (type_identifier "uint") (identifier "local_84") (; ";")) (declaration "int local_80 [3];" (primitive_type "int") (array_declarator "local_80 [3]" (identifier "local_80") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "ushort *local_74;" (type_identifier "ushort") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined2 local_48;" (type_identifier "undefined2") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_d4 = *param_2;" (assignment_expression "local_d4 = *param_2" (identifier "local_d4") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = param_3 * 0xc + 0x14;" (assignment_expression "iVar5 = param_3 * 0xc + 0x14" (identifier "iVar5") (= "=") (binary_expression "param_3 * 0xc + 0x14" (binary_expression "param_3 * 0xc" (identifier "param_3") (* "*") (number_literal "0xc")) (+ "+") (number_literal "0x14"))) (; ";")) (if_statement "if (param_4 != (int *)0x0) {\n    local_d0 = *param_4;\n  }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_d0 = *param_4;\n  }" ({ "{") (expression_statement "local_d0 = *param_4;" (assignment_expression "local_d0 = *param_4" (identifier "local_d0") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}"))) (expression_statement "local_98 = (void *)0x0;" (assignment_expression "local_98 = (void *)0x0" (identifier "local_98") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = *(int *)(*param_1 + 0x30);" (assignment_expression "iVar8 = *(int *)(*param_1 + 0x30)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*param_1 + 0x30)" (* "*") (cast_expression "(int *)(*param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x30)" (( "(") (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11 = local_80;" (assignment_expression "piVar11 = local_80" (identifier "piVar11") (= "=") (identifier "local_80")) (; ";")) (for_statement "for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar13 = 0x17" (identifier "iVar13") (= "=") (number_literal "0x17")) (; ";") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *piVar11 = 0;\n    piVar11 = piVar11 + 1;\n  }" ({ "{") (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(local_d4 + 0x14 + param_3 * 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0x14 + param_3 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x14 + param_3 * 0xc)" (( "(") (binary_expression "local_d4 + 0x14 + param_3 * 0xc" (binary_expression "local_d4 + 0x14" (identifier "local_d4") (+ "+") (number_literal "0x14")) (+ "+") (binary_expression "param_3 * 0xc" (identifier "param_3") (* "*") (number_literal "0xc"))) () ")"))))) (; ";")) (if_statement "if (iVar13 == 0) {\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }\n  else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_1[8] != 0) goto LAB_00145058;\n    if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }\n    uVar9 = FUN_00047b60();\n    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }\n    param_1[8] = 7;\n  }" ({ "{") (if_statement "if (param_1[8] != 0) goto LAB_00145058;" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00145058;" (goto "goto") (statement_identifier "LAB_00145058") (; ";"))) (if_statement "if (1999 < *(int *)(local_d4 + 0xc)) {\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" (if "if") (parenthesized_expression "(1999 < *(int *)(local_d4 + 0xc))" (( "(") (binary_expression "1999 < *(int *)(local_d4 + 0xc)" (number_literal "1999") (< "<") (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n      param_1[8] = 0xd;\n      goto LAB_00145058;\n    }" ({ "{") (expression_statement "param_1[8] = 0xd;" (assignment_expression "param_1[8] = 0xd" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0xd")) (; ";")) (goto_statement "goto LAB_00145058;" (goto "goto") (statement_identifier "LAB_00145058") (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_00047b60();" (assignment_expression "uVar9 = FUN_00047b60()" (identifier "uVar9") (= "=") (call_expression "FUN_00047b60()" (identifier "FUN_00047b60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)(local_d4 + 0x10) + -1 == param_3) {\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }\n    else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(local_d4 + 0x10) + -1 == param_3)" (( "(") (binary_expression "*(int *)(local_d4 + 0x10) + -1 == param_3" (binary_expression "*(int *)(local_d4 + 0x10) + -1" (pointer_expression "*(int *)(local_d4 + 0x10)" (* "*") (cast_expression "(int *)(local_d4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x10)" (( "(") (binary_expression "local_d4 + 0x10" (identifier "local_d4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "-1")) (== "==") (identifier "param_3")) () ")")) (compound_statement "{\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = *(int *)(*param_2 + 0x10);\n      iVar10 = FUN_00067fc0();\n      if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }\n    }" ({ "{") (if_statement "if (param_1[8] != 0) goto LAB_00145058;" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00145058;" (goto "goto") (statement_identifier "LAB_00145058") (; ";"))) (expression_statement "iVar13 = *(int *)(*param_2 + 0x10);" (assignment_expression "iVar13 = *(int *)(*param_2 + 0x10)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(*param_2 + 0x10)" (* "*") (cast_expression "(int *)(*param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" (identifier "iVar10") (= "=") (call_expression "FUN_00067fc0()" (identifier "FUN_00067fc0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_d4 = FUN_00055930();\n        if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }\n      }" ({ "{") (expression_statement "local_d4 = FUN_00055930();" (assignment_expression "local_d4 = FUN_00055930()" (identifier "local_d4") (= "=") (call_expression "FUN_00055930()" (identifier "FUN_00055930") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_d4 != 0) {\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" (if "if") (parenthesized_expression "(local_d4 != 0)" (( "(") (binary_expression "local_d4 != 0" (identifier "local_d4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);\n          *puVar1 = 0;\n          puVar1[1] = 0;\n          puVar1[2] = 0;\n          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;\n          *param_2 = local_d4;\n          goto LAB_0014574e;\n        }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);" (assignment_expression "puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 8 + (iVar13 * 3 + 3) * 4)" (( "(") (binary_expression "local_d4 + 8 + (iVar13 * 3 + 3) * 4" (binary_expression "local_d4 + 8" (identifier "local_d4") (+ "+") (number_literal "8")) (+ "+") (binary_expression "(iVar13 * 3 + 3) * 4" (parenthesized_expression "(iVar13 * 3 + 3)" (( "(") (binary_expression "iVar13 * 3 + 3" (binary_expression "iVar13 * 3" (identifier "iVar13") (* "*") (number_literal "3")) (+ "+") (number_literal "3")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;" (assignment_expression "*(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" (* "*") (cast_expression "(int *)(local_d4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x10)" (( "(") (binary_expression "local_d4 + 0x10" (identifier "local_d4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(local_d4 + 0x10) + 1" (pointer_expression "*(int *)(local_d4 + 0x10)" (* "*") (cast_expression "(int *)(local_d4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x10)" (( "(") (binary_expression "local_d4 + 0x10" (identifier "local_d4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = local_d4;" (assignment_expression "*param_2 = local_d4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "local_d4")) (; ";")) (goto_statement "goto LAB_0014574e;" (goto "goto") (statement_identifier "LAB_0014574e") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" (else "else") (compound_statement "{\nLAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;\n      iVar13 = local_d4 + (param_3 + 1) * 0xc;\n      iVar10 = FUN_00067fc0();\n      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }\n    }" ({ "{") (labeled_statement "LAB_0014574e:\n      if (param_1[8] != 0) goto LAB_00145058;" (statement_identifier "LAB_0014574e") (: ":") (if_statement "if (param_1[8] != 0) goto LAB_00145058;" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00145058;" (goto "goto") (statement_identifier "LAB_00145058") (; ";")))) (expression_statement "iVar13 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar13 = local_d4 + (param_3 + 1) * 0xc" (identifier "iVar13") (= "=") (binary_expression "local_d4 + (param_3 + 1) * 0xc" (identifier "local_d4") (+ "+") (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "iVar10 = FUN_00067fc0();" (assignment_expression "iVar10 = FUN_00067fc0()" (identifier "iVar10") (= "=") (call_expression "FUN_00067fc0()" (identifier "FUN_00067fc0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" (if "if") (parenthesized_expression "((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0))" (( "(") (binary_expression "(iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)" (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = FUN_00055930(), iVar10 != 0)" (( "(") (comma_expression "iVar10 = FUN_00055930(), iVar10 != 0" (assignment_expression "iVar10 = FUN_00055930()" (identifier "iVar10") (= "=") (call_expression "FUN_00055930()" (identifier "FUN_00055930") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);\n        *puVar1 = 0;\n        puVar1[1] = 0;\n        puVar1[2] = 0;\n        *(int *)(iVar13 + 0x1c) = iVar10;\n        if (param_1[8] != 0) goto LAB_00145058;\n        piVar11 = (int *)(iVar5 + local_d4);\n        FUN_00100e40();\n        iVar5 = *(int *)(iVar13 + 0x18);\n        *(int *)(iVar13 + 0x18) = iVar5 + 1;\n        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);\n        local_c8[1] = 1;\n        *local_c8 = uVar9;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;\n        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);\n        goto LAB_001450d9;\n      }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);" (assignment_expression "puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + *(int *)(iVar13 + 0x18) * 0xc)" (( "(") (binary_expression "iVar10 + *(int *)(iVar13 + 0x18) * 0xc" (identifier "iVar10") (+ "+") (binary_expression "*(int *)(iVar13 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar13 + 0x18)" (* "*") (cast_expression "(int *)(iVar13 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x18)" (( "(") (binary_expression "iVar13 + 0x18" (identifier "iVar13") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(iVar13 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar13 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar13 + 0x1c)" (* "*") (cast_expression "(int *)(iVar13 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x1c)" (( "(") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (param_1[8] != 0) goto LAB_00145058;" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00145058;" (goto "goto") (statement_identifier "LAB_00145058") (; ";"))) (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" (identifier "piVar11") (= "=") (cast_expression "(int *)(iVar5 + local_d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + local_d4)" (( "(") (binary_expression "iVar5 + local_d4" (identifier "iVar5") (+ "+") (identifier "local_d4")) () ")")))) (; ";")) (expression_statement "FUN_00100e40();" (call_expression "FUN_00100e40()" (identifier "FUN_00100e40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar13 + 0x18);" (assignment_expression "iVar5 = *(int *)(iVar13 + 0x18)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar13 + 0x18)" (* "*") (cast_expression "(int *)(iVar13 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x18)" (( "(") (binary_expression "iVar13 + 0x18" (identifier "iVar13") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar13 + 0x18) = iVar5 + 1;" (assignment_expression "*(int *)(iVar13 + 0x18) = iVar5 + 1" (pointer_expression "*(int *)(iVar13 + 0x18)" (* "*") (cast_expression "(int *)(iVar13 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x18)" (( "(") (binary_expression "iVar13 + 0x18" (identifier "iVar13") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" (identifier "local_c8") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc)" (( "(") (binary_expression "*(int *)(iVar13 + 0x1c) + iVar5 * 0xc" (pointer_expression "*(int *)(iVar13 + 0x1c)" (* "*") (cast_expression "(int *)(iVar13 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x1c)" (( "(") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (binary_expression "iVar5 * 0xc" (identifier "iVar5") (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "local_c8[1] = 1;" (assignment_expression "local_c8[1] = 1" (subscript_expression "local_c8[1]" (identifier "local_c8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*local_c8 = uVar9;" (assignment_expression "*local_c8 = uVar9" (pointer_expression "*local_c8" (* "*") (identifier "local_c8")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(local_d4 + 0xc) + 1" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);" (assignment_expression "iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(local_d4 + 0x18 + param_3 * 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0x18 + param_3 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x18 + param_3 * 0xc)" (( "(") (binary_expression "local_d4 + 0x18 + param_3 * 0xc" (binary_expression "local_d4 + 0x18" (identifier "local_d4") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "param_3 * 0xc" (identifier "param_3") (* "*") (number_literal "0xc"))) () ")"))))) (; ";")) (goto_statement "goto LAB_001450d9;" (goto "goto") (statement_identifier "LAB_001450d9") (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" (else "else") (compound_statement "{\n    piVar11 = (int *)(iVar5 + local_d4);\n    iVar5 = local_d4 + (param_3 + 1) * 0xc;\n    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);\n    FUN_00100e40(iVar13,piVar11,local_80);\n    local_28 = 0;\n    local_80[1] = local_c8[2] + 1;\nLAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;\n    bVar15 = false;\n    if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }\n    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }\n    FUN_0010e2d0();\n    iVar5 = local_9c;\n    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }\n    FUN_000521f0();\n    FUN_00066c70();\n    if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }\n  }" ({ "{") (expression_statement "piVar11 = (int *)(iVar5 + local_d4);" (assignment_expression "piVar11 = (int *)(iVar5 + local_d4)" (identifier "piVar11") (= "=") (cast_expression "(int *)(iVar5 + local_d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + local_d4)" (( "(") (binary_expression "iVar5 + local_d4" (identifier "iVar5") (+ "+") (identifier "local_d4")) () ")")))) (; ";")) (expression_statement "iVar5 = local_d4 + (param_3 + 1) * 0xc;" (assignment_expression "iVar5 = local_d4 + (param_3 + 1) * 0xc" (identifier "iVar5") (= "=") (binary_expression "local_d4 + (param_3 + 1) * 0xc" (identifier "local_d4") (+ "+") (binary_expression "(param_3 + 1) * 0xc" (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);" (assignment_expression "local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" (identifier "local_c8") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc)" (( "(") (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc" (binary_expression "*(int *)(iVar5 + 0x1c) + -0xc" (pointer_expression "*(int *)(iVar5 + 0x1c)" (* "*") (cast_expression "(int *)(iVar5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "-0xc")) (+ "+") (binary_expression "*(int *)(iVar5 + 0x18) * 0xc" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "FUN_00100e40(iVar13,piVar11,local_80);" (call_expression "FUN_00100e40(iVar13,piVar11,local_80)" (identifier "FUN_00100e40") (argument_list "(iVar13,piVar11,local_80)" (( "(") (identifier "iVar13") (, ",") (identifier "piVar11") (, ",") (identifier "local_80") () ")"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_80[1] = local_c8[2] + 1;" (assignment_expression "local_80[1] = local_c8[2] + 1" (subscript_expression "local_80[1]" (identifier "local_80") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "local_c8[2] + 1" (subscript_expression "local_c8[2]" (identifier "local_c8") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_001450d9:\n    local_c4 = local_d4 + 0x20 + param_3 * 0xc;" (statement_identifier "LAB_001450d9") (: ":") (expression_statement "local_c4 = local_d4 + 0x20 + param_3 * 0xc;" (assignment_expression "local_c4 = local_d4 + 0x20 + param_3 * 0xc" (identifier "local_c4") (= "=") (binary_expression "local_d4 + 0x20 + param_3 * 0xc" (binary_expression "local_d4 + 0x20" (identifier "local_d4") (+ "+") (number_literal "0x20")) (+ "+") (binary_expression "param_3 * 0xc" (identifier "param_3") (* "*") (number_literal "0xc")))) (; ";"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)(local_c4 + 4) == 1) {\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" (if "if") (parenthesized_expression "(*(int *)(local_c4 + 4) == 1)" (( "(") (binary_expression "*(int *)(local_c4 + 4) == 1" (pointer_expression "*(int *)(local_c4 + 4)" (* "*") (cast_expression "(int *)(local_c4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + 4)" (( "(") (binary_expression "local_c4 + 4" (identifier "local_c4") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;\n    }" ({ "{") (expression_statement "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;" (assignment_expression "bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2" (identifier "bVar15") (= "=") (binary_expression "*(int *)(local_d4 + 0x10) == param_3 + 2" (pointer_expression "*(int *)(local_d4 + 0x10)" (* "*") (cast_expression "(int *)(local_d4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0x10)" (( "(") (binary_expression "local_d4 + 0x10" (identifier "local_d4") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")))) (; ";")) (} "}"))) (expression_statement "FUN_00143110(0,0,0,param_3,iVar13,&local_9c);" (call_expression "FUN_00143110(0,0,0,param_3,iVar13,&local_9c)" (identifier "FUN_00143110") (argument_list "(0,0,0,param_3,iVar13,&local_9c)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "param_3") (, ",") (identifier "iVar13") (, ",") (pointer_expression "&local_9c" (& "&") (identifier "local_9c")) () ")"))) (; ";")) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" (( "(") (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" (( "(") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" (* "*") (cast_expression "(char *)(local_9c + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x10)" (( "(") (binary_expression "local_9c + 0x10" (identifier "local_9c") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      bVar4 = false;\n      do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );\n    }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (do_statement "do {\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      } while( true );" (do "do") (compound_statement "{\n        iVar5 = local_9c;\n        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);\n        iVar10 = uVar6 * 0x58 + local_9c;\n        __n = *(size_t *)(iVar10 + 0x84);\n        __s1 = *(void **)(iVar10 + 0x80);\n        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }\n        iVar10 = uVar6 * 0x58 + iVar5;\n        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }\n        FUN_00142ae0(0,0);\n        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;\n      }" ({ "{") (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" (identifier "iVar5") (= "=") (identifier "local_9c")) (; ";")) (expression_statement "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);" (assignment_expression "uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (identifier "uVar6") (= "=") (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" (( "(") (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" (* "*") (cast_expression "(int *)(local_9c + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x40)" (( "(") (binary_expression "local_9c + 0x40" (identifier "local_9c") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = uVar6 * 0x58 + local_9c;" (assignment_expression "iVar10 = uVar6 * 0x58 + local_9c" (identifier "iVar10") (= "=") (binary_expression "uVar6 * 0x58 + local_9c" (binary_expression "uVar6 * 0x58" (identifier "uVar6") (* "*") (number_literal "0x58")) (+ "+") (identifier "local_9c"))) (; ";")) (expression_statement "__n = *(size_t *)(iVar10 + 0x84);" (assignment_expression "__n = *(size_t *)(iVar10 + 0x84)" (identifier "__n") (= "=") (pointer_expression "*(size_t *)(iVar10 + 0x84)" (* "*") (cast_expression "(size_t *)(iVar10 + 0x84)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x84)" (( "(") (binary_expression "iVar10 + 0x84" (identifier "iVar10") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (expression_statement "__s1 = *(void **)(iVar10 + 0x80);" (assignment_expression "__s1 = *(void **)(iVar10 + 0x80)" (identifier "__s1") (= "=") (pointer_expression "*(void **)(iVar10 + 0x80)" (* "*") (cast_expression "(void **)(iVar10 + 0x80)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x80)" (( "(") (binary_expression "iVar10 + 0x80" (identifier "iVar10") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))\n        {\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" (if "if") (parenthesized_expression "((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))" (( "(") (binary_expression "(local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" (parenthesized_expression "(local_94 != __n)" (( "(") (binary_expression "local_94 != __n" (identifier "local_94") (!= "!=") (identifier "__n")) () ")")) (|| "||") (parenthesized_expression "((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)))" (( "(") (parenthesized_expression "(__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))" (( "(") (binary_expression "__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" (binary_expression "__n != 0" (identifier "__n") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0)" (( "(") (comma_expression "iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0" (assignment_expression "iVar10 = memcmp(__s1,local_98,__n)" (identifier "iVar10") (= "=") (call_expression "memcmp(__s1,local_98,__n)" (identifier "memcmp") (argument_list "(__s1,local_98,__n)" (( "(") (identifier "__s1") (, ",") (identifier "local_98") (, ",") (identifier "__n") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;\n          local_94 = 0;\n          FUN_0009a550(__s1);\n          bVar4 = false;\n        }" ({ "{") (if_statement "if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;" (if "if") (parenthesized_expression "((param_4 != (int *)0x0) && (local_d0 < local_44))" (( "(") (binary_expression "(param_4 != (int *)0x0) && (local_d0 < local_44)" (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_d0 < local_44)" (( "(") (binary_expression "local_d0 < local_44" (identifier "local_d0") (< "<") (identifier "local_44")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0009a550(__s1);" (call_expression "FUN_0009a550(__s1)" (identifier "FUN_0009a550") (argument_list "(__s1)" (( "(") (identifier "__s1") () ")"))) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (} "}"))) (expression_statement "iVar10 = uVar6 * 0x58 + iVar5;" (assignment_expression "iVar10 = uVar6 * 0x58 + iVar5" (identifier "iVar10") (= "=") (binary_expression "uVar6 * 0x58 + iVar5" (binary_expression "uVar6 * 0x58" (identifier "uVar6") (* "*") (number_literal "0x58")) (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))))" (( "(") (binary_expression "(*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" (parenthesized_expression "(*(int *)(iVar10 + 0x94) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x94) != 0" (pointer_expression "*(int *)(iVar10 + 0x94)" (* "*") (cast_expression "(int *)(iVar10 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x94)" (( "(") (binary_expression "iVar10 + 0x94" (identifier "iVar10") (+ "+") (number_literal "0x94")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))" (( "(") (parenthesized_expression "(!bVar15 && (*(char *)(iVar10 + 0x98) != '\0'))" (( "(") (binary_expression "!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (parenthesized_expression "(*(char *)(iVar10 + 0x98) != '\0')" (( "(") (binary_expression "*(char *)(iVar10 + 0x98) != '\0'" (pointer_expression "*(char *)(iVar10 + 0x98)" (* "*") (cast_expression "(char *)(iVar10 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x98)" (( "(") (binary_expression "iVar10 + 0x98" (identifier "iVar10") (+ "+") (number_literal "0x98")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          iVar10 = param_1[8];\n          if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }\n          if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }\n          iVar5 = iVar5 + uVar6 * 0x58;\n          if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }\n        }" ({ "{") (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" (identifier "iVar10") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (!bVar4 && iVar10 == 0) {\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" (if "if") (parenthesized_expression "(!bVar4 && iVar10 == 0)" (( "(") (binary_expression "!bVar4 && iVar10 == 0" (unary_expression "!bVar4" (! "!") (identifier "bVar4")) (&& "&&") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            FUN_0010df50(__s1);\n            iVar10 = param_1[8];\n            bVar4 = true;\n          }" ({ "{") (expression_statement "FUN_0010df50(__s1);" (call_expression "FUN_0010df50(__s1)" (identifier "FUN_0010df50") (argument_list "(__s1)" (( "(") (identifier "__s1") () ")"))) (; ";")) (expression_statement "iVar10 = param_1[8];" (assignment_expression "iVar10 = param_1[8]" (identifier "iVar10") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))) (if_statement "if (iVar10 == 0) {\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;\n            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);\n            iVar10 = *(int *)(local_9c + 0x90 + iVar10);\n            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }\n            if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }\n            if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }\n            local_48 = 0;\n            local_50 = uVar2;\n            local_4c = iVar10;\n          }" ({ "{") (expression_statement "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;" (assignment_expression "iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" (identifier "iVar10") (= "=") (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58" (binary_expression "(uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(*(int *)(local_9c + 0x40) + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_9c + 0x40) + 4)" (( "(") (binary_expression "*(int *)(local_9c + 0x40) + 4" (pointer_expression "*(int *)(local_9c + 0x40)" (* "*") (cast_expression "(int *)(local_9c + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x40)" (( "(") (binary_expression "local_9c + 0x40" (identifier "local_9c") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "0x58"))) (; ";")) (expression_statement "uVar2 = *(uint *)(local_9c + 0x8c + iVar10);" (assignment_expression "uVar2 = *(uint *)(local_9c + 0x8c + iVar10)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(local_9c + 0x8c + iVar10)" (* "*") (cast_expression "(uint *)(local_9c + 0x8c + iVar10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x8c + iVar10)" (( "(") (binary_expression "local_9c + 0x8c + iVar10" (binary_expression "local_9c + 0x8c" (identifier "local_9c") (+ "+") (number_literal "0x8c")) (+ "+") (identifier "iVar10")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(local_9c + 0x90 + iVar10);" (assignment_expression "iVar10 = *(int *)(local_9c + 0x90 + iVar10)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(local_9c + 0x90 + iVar10)" (* "*") (cast_expression "(int *)(local_9c + 0x90 + iVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x90 + iVar10)" (( "(") (binary_expression "local_9c + 0x90 + iVar10" (binary_expression "local_9c + 0x90" (identifier "local_9c") (+ "+") (number_literal "0x90")) (+ "+") (identifier "iVar10")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {\n              FUN_001087a0();\n            }" (if "if") (parenthesized_expression "(*(int *)(*param_1 + 0x44) <= local_64 + local_70)" (( "(") (binary_expression "*(int *)(*param_1 + 0x44) <= local_64 + local_70" (pointer_expression "*(int *)(*param_1 + 0x44)" (* "*") (cast_expression "(int *)(*param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x44)" (( "(") (binary_expression "*param_1 + 0x44" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (<= "<=") (binary_expression "local_64 + local_70" (identifier "local_64") (+ "+") (identifier "local_70"))) () ")")) (compound_statement "{\n              FUN_001087a0();\n            }" ({ "{") (expression_statement "FUN_001087a0();" (call_expression "FUN_001087a0()" (identifier "FUN_001087a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_48._1_1_ != '\0') {\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" (if "if") (parenthesized_expression "(local_48._1_1_ != '\0')" (( "(") (binary_expression "local_48._1_1_ != '\0'" (field_expression "local_48._1_1_" (identifier "local_48") (. ".") (field_identifier "_1_1_")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;\n              FUN_00126590(uVar2,iVar10);\n            }" ({ "{") (expression_statement "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;" (assignment_expression "*local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8" (pointer_expression "*local_74" (* "*") (identifier "local_74")) (= "=") (binary_expression "(ushort)local_70 << 8 | (ushort)local_70 >> 8" (binary_expression "(ushort)local_70 << 8" (cast_expression "(ushort)local_70" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_70")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(ushort)local_70 >> 8" (cast_expression "(ushort)local_70" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_70")) (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "FUN_00126590(uVar2,iVar10);" (call_expression "FUN_00126590(uVar2,iVar10)" (identifier "FUN_00126590") (argument_list "(uVar2,iVar10)" (( "(") (identifier "uVar2") (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_48 == 0) {\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }\n            else {\n              FUN_0009b360(uVar2,iVar10);\n            }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));\n            }" ({ "{") (expression_statement "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));" (call_expression "FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" (identifier "FUN_0009b360") (argument_list "(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50))" (( "(") (binary_expression "uVar2 - local_50" (identifier "uVar2") (- "-") (identifier "local_50")) (, ",") (binary_expression "(iVar10 - local_4c) - (uint)(uVar2 < local_50)" (parenthesized_expression "(iVar10 - local_4c)" (( "(") (binary_expression "iVar10 - local_4c" (identifier "iVar10") (- "-") (identifier "local_4c")) () ")")) (- "-") (call_expression "(uint)(uVar2 < local_50)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < local_50)" (( "(") (binary_expression "uVar2 < local_50" (identifier "uVar2") (< "<") (identifier "local_50")) () ")")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n              FUN_0009b360(uVar2,iVar10);\n            }" (else "else") (compound_statement "{\n              FUN_0009b360(uVar2,iVar10);\n            }" ({ "{") (expression_statement "FUN_0009b360(uVar2,iVar10);" (call_expression "FUN_0009b360(uVar2,iVar10)" (identifier "FUN_0009b360") (argument_list "(uVar2,iVar10)" (( "(") (identifier "uVar2") (, ",") (identifier "iVar10") () ")"))) (; ";")) (} "}")))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" (identifier "local_50") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "local_4c = iVar10;" (assignment_expression "local_4c = iVar10" (identifier "local_4c") (= "=") (identifier "iVar10")) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + uVar6 * 0x58;" (assignment_expression "iVar5 = iVar5 + uVar6 * 0x58" (identifier "iVar5") (= "=") (binary_expression "iVar5 + uVar6 * 0x58" (identifier "iVar5") (+ "+") (binary_expression "uVar6 * 0x58" (identifier "uVar6") (* "*") (number_literal "0x58")))) (; ";")) (if_statement "if (iVar8 == 1) {\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }\n          else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" (if "if") (parenthesized_expression "(iVar8 == 1)" (( "(") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }\n          }" ({ "{") (if_statement "if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {\n              FUN_0009b360(0,0);\n            }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)))" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" (parenthesized_expression "(*(byte *)(iVar5 + 0x98) != 0)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x98) != 0" (pointer_expression "*(byte *)(iVar5 + 0x98)" (* "*") (cast_expression "(byte *)(iVar5 + 0x98)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))" (( "(") (comma_expression "FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94)" (call_expression "FUN_0009b360(0,0)" (identifier "FUN_0009b360") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (, ",") (binary_expression "0 < *(int *)(iVar5 + 0x94)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar5 + 0x94)" (* "*") (cast_expression "(int *)(iVar5 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n              FUN_0009b360(0,0);\n            }" ({ "{") (expression_statement "FUN_0009b360(0,0);" (call_expression "FUN_0009b360(0,0)" (identifier "FUN_0009b360") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" (else "else") (compound_statement "{\n            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;\n            FUN_0009b360(iVar5,iVar5 >> 0x1f);\n            FUN_001148c0(FUN_0011d990);\n          }" ({ "{") (expression_statement "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;" (assignment_expression "iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" (identifier "iVar5") (= "=") (binary_expression "(uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2" (binary_expression "(uint)*(byte *)(iVar5 + 0x98)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar5 + 0x98)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")")))) (+ "+") (binary_expression "*(int *)(iVar5 + 0x94) * 2" (pointer_expression "*(int *)(iVar5 + 0x94)" (* "*") (cast_expression "(int *)(iVar5 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x94)" (( "(") (binary_expression "iVar5 + 0x94" (identifier "iVar5") (+ "+") (number_literal "0x94")) () ")")))) (* "*") (number_literal "2")))) (; ";")) (expression_statement "FUN_0009b360(iVar5,iVar5 >> 0x1f);" (call_expression "FUN_0009b360(iVar5,iVar5 >> 0x1f)" (identifier "FUN_0009b360") (argument_list "(iVar5,iVar5 >> 0x1f)" (( "(") (identifier "iVar5") (, ",") (binary_expression "iVar5 >> 0x1f" (identifier "iVar5") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (expression_statement "FUN_001148c0(FUN_0011d990);" (call_expression "FUN_001148c0(FUN_0011d990)" (identifier "FUN_001148c0") (argument_list "(FUN_0011d990)" (( "(") (identifier "FUN_0011d990") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_00142ae0(0,0);" (call_expression "FUN_00142ae0(0,0)" (identifier "FUN_00142ae0") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;" (if "if") (parenthesized_expression "((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0'))" (( "(") (binary_expression "(param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')" (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(local_9c + 0x10) != '\0')" (( "(") (binary_expression "*(char *)(local_9c + 0x10) != '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" (* "*") (cast_expression "(char *)(local_9c + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x10)" (( "(") (binary_expression "local_9c + 0x10" (identifier "local_9c") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0010e2d0();" (call_expression "FUN_0010e2d0()" (identifier "FUN_0010e2d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = local_9c;" (assignment_expression "iVar5 = local_9c" (identifier "iVar5") (= "=") (identifier "local_9c")) (; ";")) (if_statement "if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }\n    else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" (if "if") (parenthesized_expression "((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0'))" (( "(") (binary_expression "(param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')" (parenthesized_expression "(param_1[8] == 0)" (( "(") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(local_9c + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(local_9c + 0x10) == '\0'" (pointer_expression "*(char *)(local_9c + 0x10)" (* "*") (cast_expression "(char *)(local_9c + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x10)" (( "(") (binary_expression "local_9c + 0x10" (identifier "local_9c") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar8 = *(int *)(local_9c + 0x2c);\n      piVar14 = (int *)(local_9c + 0x44);\n      local_8c = 0;\n      local_88 = 0;\n      local_84 = 0;\n      if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }\n      FUN_00066c70();\n      *piVar11 = iVar13;\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(local_9c + 0x2c);" (assignment_expression "iVar8 = *(int *)(local_9c + 0x2c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_9c + 0x2c)" (* "*") (cast_expression "(int *)(local_9c + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x2c)" (( "(") (binary_expression "local_9c + 0x2c" (identifier "local_9c") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "piVar14 = (int *)(local_9c + 0x44);" (assignment_expression "piVar14 = (int *)(local_9c + 0x44)" (identifier "piVar14") (= "=") (cast_expression "(int *)(local_9c + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c + 0x44)" (( "(") (binary_expression "local_9c + 0x44" (identifier "local_9c") (+ "+") (number_literal "0x44")) () ")")))) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar8) {\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" (if "if") (parenthesized_expression "(0 < iVar8)" (( "(") (binary_expression "0 < iVar8" (number_literal "0") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n        iVar10 = 0;\n        do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));\n      }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));" (do "do") (compound_statement "{\n          piVar7 = (int *)*piVar14;\n          if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }\n          iVar10 = iVar10 + 1;\n        }" ({ "{") (expression_statement "piVar7 = (int *)*piVar14;" (assignment_expression "piVar7 = (int *)*piVar14" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n          }" ({ "{") (if_statement "if (piVar14[3] == 0) {\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }\n            else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" (if "if") (parenthesized_expression "(piVar14[3] == 0)" (( "(") (binary_expression "piVar14[3] == 0" (subscript_expression "piVar14[3]" (identifier "piVar14") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar7[2] = 0;\n              *(undefined4 *)(*piVar14 + 4) = 0;\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" ({ "{") (expression_statement "piVar7[2] = 0;" (assignment_expression "piVar7[2] = 0" (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*piVar14 + 4) = 0;" (assignment_expression "*(undefined4 *)(*piVar14 + 4) = 0" (pointer_expression "*(undefined4 *)(*piVar14 + 4)" (* "*") (cast_expression "(undefined4 *)(*piVar14 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 4)" (( "(") (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 + 0x2c)" (* "*") (cast_expression "(int *)(iVar5 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" (else "else") (compound_statement "{\n              iVar8 = *piVar7;\n              iVar12 = piVar14[8];\n              local_24 = 0;\n              iVar3 = piVar14[7];\n              piVar7 = (int *)FUN_001133e0();\n              if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }\n              iVar8 = *(int *)(iVar5 + 0x2c);\n            }" ({ "{") (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" (identifier "iVar8") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "iVar12 = piVar14[8];" (assignment_expression "iVar12 = piVar14[8]" (identifier "iVar12") (= "=") (subscript_expression "piVar14[8]" (identifier "piVar14") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = piVar14[7];" (assignment_expression "iVar3 = piVar14[7]" (identifier "iVar3") (= "=") (subscript_expression "piVar14[7]" (identifier "piVar14") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "piVar7 = (int *)FUN_001133e0();" (assignment_expression "piVar7 = (int *)FUN_001133e0()" (identifier "piVar7") (= "=") (cast_expression "(int *)FUN_001133e0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001133e0()" (identifier "FUN_001133e0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }\n              }" ({ "{") (if_statement "if (piVar7[1] < piVar7[2]) {\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }\n                else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" (if "if") (parenthesized_expression "(piVar7[1] < piVar7[2])" (( "(") (binary_expression "piVar7[1] < piVar7[2]" (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) (< "<") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                  param_1[8] = 0x10b;\n                  FUN_00044000(piVar7);\n                }" ({ "{") (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0x10b")) (; ";")) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" (identifier "FUN_00044000") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" (else "else") (compound_statement "{\n                  if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }\n                  FUN_00044000(piVar7);\n                }" ({ "{") (if_statement "if (piVar7[2] < iVar12) {\n                    param_1[8] = 0x10b;\n                  }\n                  else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" (if "if") (parenthesized_expression "(piVar7[2] < iVar12)" (( "(") (binary_expression "piVar7[2] < iVar12" (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]")) (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n                    param_1[8] = 0x10b;\n                  }" ({ "{") (expression_statement "param_1[8] = 0x10b;" (assignment_expression "param_1[8] = 0x10b" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0x10b")) (; ";")) (} "}")) (else_clause "else {\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" (else "else") (compound_statement "{\n                    local_88 = 0;\n                    if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }\n                    FUN_0009a550(&local_24);\n                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);\n                    FUN_0009a550(piVar14[0xf]);\n                    FUN_0009a550(iVar12 + *piVar7);\n                    if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }\n                    FUN_0009b360(4,0);\n                    iVar12 = piVar14[7];\n                    if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }\n                    *(int *)(*piVar14 + 4) = iVar12;\n                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);\n                    FUN_00108640(local_8c,local_88);\n                  }" ({ "{") (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_84 < (uint)piVar7[1]) {\n                      FUN_0009a490(piVar7[1]);\n                    }" (if "if") (parenthesized_expression "(local_84 < (uint)piVar7[1])" (( "(") (binary_expression "local_84 < (uint)piVar7[1]" (identifier "local_84") (< "<") (cast_expression "(uint)piVar7[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n                      FUN_0009a490(piVar7[1]);\n                    }" ({ "{") (expression_statement "FUN_0009a490(piVar7[1]);" (call_expression "FUN_0009a490(piVar7[1])" (identifier "FUN_0009a490") (argument_list "(piVar7[1])" (( "(") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0009a550(&local_24);" (call_expression "FUN_0009a550(&local_24)" (identifier "FUN_0009a550") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (expression_statement "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);" (call_expression "FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f)" (identifier "FUN_0009b360") (argument_list "(piVar14[0x10],piVar14[0x10] >> 0x1f)" (( "(") (subscript_expression "piVar14[0x10]" (identifier "piVar14") ([ "[") (number_literal "0x10") (] "]")) (, ",") (binary_expression "piVar14[0x10] >> 0x1f" (subscript_expression "piVar14[0x10]" (identifier "piVar14") ([ "[") (number_literal "0x10") (] "]")) (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (expression_statement "FUN_0009a550(piVar14[0xf]);" (call_expression "FUN_0009a550(piVar14[0xf])" (identifier "FUN_0009a550") (argument_list "(piVar14[0xf])" (( "(") (subscript_expression "piVar14[0xf]" (identifier "piVar14") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0009a550(iVar12 + *piVar7);" (call_expression "FUN_0009a550(iVar12 + *piVar7)" (identifier "FUN_0009a550") (argument_list "(iVar12 + *piVar7)" (( "(") (binary_expression "iVar12 + *piVar7" (identifier "iVar12") (+ "+") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")"))) (; ";")) (if_statement "if (param_1[8] == 0) {\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" (if "if") (parenthesized_expression "(param_1[8] == 0)" (( "(") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;\n                    }" ({ "{") (expression_statement "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;" (assignment_expression "*(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8" (pointer_expression "*(ushort *)(local_8c + 2)" (* "*") (cast_expression "(ushort *)(local_8c + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_8c + 2)" (( "(") (binary_expression "local_8c + 2" (identifier "local_8c") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "(ushort)local_88 << 8 | (ushort)local_88 >> 8" (binary_expression "(ushort)local_88 << 8" (cast_expression "(ushort)local_88" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_88")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(ushort)local_88 >> 8" (cast_expression "(ushort)local_88" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_88")) (>> ">>") (number_literal "8")))) (; ";")) (} "}"))) (expression_statement "FUN_0009b360(4,0);" (call_expression "FUN_0009b360(4,0)" (identifier "FUN_0009b360") (argument_list "(4,0)" (( "(") (number_literal "4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" (identifier "iVar12") (= "=") (subscript_expression "piVar14[7]" (identifier "piVar14") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (piVar14[2] == iVar12) {\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" (if "if") (parenthesized_expression "(piVar14[2] == iVar12)" (( "(") (binary_expression "piVar14[2] == iVar12" (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "iVar12")) () ")")) (compound_statement "{\n                      if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }\n                    }" ({ "{") (if_statement "if (piVar14[10] < piVar7[2]) {\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" (if "if") (parenthesized_expression "(piVar14[10] < piVar7[2])" (( "(") (binary_expression "piVar14[10] < piVar7[2]" (subscript_expression "piVar14[10]" (identifier "piVar14") ([ "[") (number_literal "10") (] "]")) (< "<") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;\n                        FUN_0009b360(iVar12,iVar12 >> 0x1f);\n                        FUN_0009a550(piVar14[9] + *piVar7);\n                        iVar12 = piVar14[7];\n                      }" ({ "{") (expression_statement "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;" (assignment_expression "iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5" (identifier "iVar12") (= "=") (binary_expression "local_88 + (piVar14[10] - piVar7[2]) + -5" (binary_expression "local_88 + (piVar14[10] - piVar7[2])" (identifier "local_88") (+ "+") (parenthesized_expression "(piVar14[10] - piVar7[2])" (( "(") (binary_expression "piVar14[10] - piVar7[2]" (subscript_expression "piVar14[10]" (identifier "piVar14") ([ "[") (number_literal "10") (] "]")) (- "-") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) () ")"))) (+ "+") (number_literal "-5"))) (; ";")) (expression_statement "FUN_0009b360(iVar12,iVar12 >> 0x1f);" (call_expression "FUN_0009b360(iVar12,iVar12 >> 0x1f)" (identifier "FUN_0009b360") (argument_list "(iVar12,iVar12 >> 0x1f)" (( "(") (identifier "iVar12") (, ",") (binary_expression "iVar12 >> 0x1f" (identifier "iVar12") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (expression_statement "FUN_0009a550(piVar14[9] + *piVar7);" (call_expression "FUN_0009a550(piVar14[9] + *piVar7)" (identifier "FUN_0009a550") (argument_list "(piVar14[9] + *piVar7)" (( "(") (binary_expression "piVar14[9] + *piVar7" (subscript_expression "piVar14[9]" (identifier "piVar14") ([ "[") (number_literal "9") (] "]")) (+ "+") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")"))) (; ";")) (expression_statement "iVar12 = piVar14[7];" (assignment_expression "iVar12 = piVar14[7]" (identifier "iVar12") (= "=") (subscript_expression "piVar14[7]" (identifier "piVar14") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(int *)(*piVar14 + 4) = iVar12;" (assignment_expression "*(int *)(*piVar14 + 4) = iVar12" (pointer_expression "*(int *)(*piVar14 + 4)" (* "*") (cast_expression "(int *)(*piVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 4)" (( "(") (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);" (call_expression "FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" (identifier "FUN_001088b0") (argument_list "(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20)" (( "(") (identifier "iVar3") (, ",") (binary_expression "(iVar3 >> 0x1f) + iVar8 * 0x20" (parenthesized_expression "(iVar3 >> 0x1f)" (( "(") (binary_expression "iVar3 >> 0x1f" (identifier "iVar3") (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (binary_expression "iVar8 * 0x20" (identifier "iVar8") (* "*") (number_literal "0x20"))) () ")"))) (; ";")) (expression_statement "FUN_00108640(local_8c,local_88);" (call_expression "FUN_00108640(local_8c,local_88)" (identifier "FUN_00108640") (argument_list "(local_8c,local_88)" (( "(") (identifier "local_8c") (, ",") (identifier "local_88") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00044000(piVar7);" (call_expression "FUN_00044000(piVar7)" (identifier "FUN_00044000") (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar8 = *(int *)(iVar5 + 0x2c);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x2c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 + 0x2c)" (* "*") (cast_expression "(int *)(iVar5 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0))" (( "(") (binary_expression "(iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0)" (parenthesized_expression "(iVar10 < iVar8)" (( "(") (binary_expression "iVar10 < iVar8" (identifier "iVar10") (< "<") (identifier "iVar8")) () ")")) (&& "&&") (parenthesized_expression "(piVar14 = piVar14 + 0x16, param_1[8] == 0)" (( "(") (comma_expression "piVar14 = piVar14 + 0x16, param_1[8] == 0" (assignment_expression "piVar14 = piVar14 + 0x16" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 0x16" (identifier "piVar14") (+ "+") (number_literal "0x16"))) (, ",") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" (identifier "FUN_00066c70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*piVar11 = iVar13;" (assignment_expression "*piVar11 = iVar13" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (identifier "iVar13")) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" (else "else") (compound_statement "{\n      iVar5 = 0;\n      if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }\n      if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }\n      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;\n      piVar11[1] = piVar11[1] - iVar13;\n      *piVar11 = 0;\n      if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }\n    }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar13) {\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\nLAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);\n      }" ({ "{") (labeled_statement "LAB_00145474:\n        do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" (statement_identifier "LAB_00145474") (: ":") (do_statement "do {\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        } while (iVar13 != iVar5);" (do "do") (compound_statement "{\n          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);\n          iVar10 = iVar8 >> 0x1f;\n          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);\n          if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }\nLAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }\n          iVar5 = iVar5 + 1;\n          FUN_00079e80();\n          FUN_000e7e00(param_1[0xd]);\n          iVar8 = FUN_000bfe40(param_1[0xd]);\n          param_1[8] = iVar8;\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);" (assignment_expression "iVar8 = *(int *)(iVar5 * 0xc + piVar11[2])" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 * 0xc + piVar11[2])" (* "*") (cast_expression "(int *)(iVar5 * 0xc + piVar11[2])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 * 0xc + piVar11[2])" (( "(") (binary_expression "iVar5 * 0xc + piVar11[2]" (binary_expression "iVar5 * 0xc" (identifier "iVar5") (* "*") (number_literal "0xc")) (+ "+") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) () ")"))))) (; ";")) (expression_statement "iVar10 = iVar8 >> 0x1f;" (assignment_expression "iVar10 = iVar8 >> 0x1f" (identifier "iVar10") (= "=") (binary_expression "iVar8 >> 0x1f" (identifier "iVar8") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);" (call_expression "FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1)" (identifier "FUN_001088b0") (argument_list "(0xffffffff,(iVar8 + 1) * 0x20 + -1)" (( "(") (number_literal "0xffffffff") (, ",") (binary_expression "(iVar8 + 1) * 0x20 + -1" (binary_expression "(iVar8 + 1) * 0x20" (parenthesized_expression "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x20")) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (if_statement "if (param_1[0xd] == 0) {\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" (if "if") (parenthesized_expression "(param_1[0xd] == 0)" (( "(") (binary_expression "param_1[0xd] == 0" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));\n            if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }\n            FUN_00044000(iVar12);\n          }" ({ "{") (expression_statement "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));" (assignment_expression "iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" (identifier "iVar12") (= "=") (call_expression "FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" (identifier "FUN_000a3060") (argument_list "("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",\n                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8))" (( "(") (string_literal ""DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?"" (" """) (string_content "DELETE FROM ") (escape_sequence "\'") (string_content "%q") (escape_sequence "\'") (string_content ".") (escape_sequence "\'") (string_content "%q_idx") (escape_sequence "\'") (string_content " WHERE segid=?") (" """)) (, ",") (pointer_expression "*(undefined4 *)(*param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(*param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (param_1[8] == 0) {\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" (if "if") (parenthesized_expression "(param_1[8] == 0)" (( "(") (binary_expression "param_1[8] == 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }\n              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);\n              param_1[8] = iVar8;\n            }" ({ "{") (if_statement "if (iVar12 == 0) {\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_1[8] = 7;\n                FUN_00044000(0);\n                goto LAB_001454c4;\n              }" ({ "{") (expression_statement "param_1[8] = 7;" (assignment_expression "param_1[8] = 7" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "FUN_00044000(0);" (call_expression "FUN_00044000(0)" (identifier "FUN_00044000") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_001454c4;" (goto "goto") (statement_identifier "LAB_001454c4") (; ";")) (} "}"))) (expression_statement "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);" (assignment_expression "iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" (identifier "iVar8") (= "=") (call_expression "FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" (identifier "FUN_00100700") (argument_list "(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10)" (( "(") (number_literal "0x85") (, ",") (number_literal "0") (, ",") (binary_expression "param_1 + 0xd" (identifier "param_1") (+ "+") (number_literal "0xd")) (, ",") (number_literal "0") (, ",") (identifier "iVar13") (, ",") (identifier "piVar11") (, ",") (identifier "iVar8") (, ",") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (expression_statement "FUN_00044000(iVar12);" (call_expression "FUN_00044000(iVar12)" (identifier "FUN_00044000") (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001454c4:\n          if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" (statement_identifier "LAB_001454c4") (: ":") (if_statement "if (param_1[8] != 0) {\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" (if "if") (parenthesized_expression "(param_1[8] != 0)" (( "(") (binary_expression "param_1[8] != 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            if (iVar13 == iVar5) break;\n            goto LAB_00145474;\n          }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar13 == iVar5) break;" (if "if") (parenthesized_expression "(iVar13 == iVar5)" (( "(") (binary_expression "iVar13 == iVar5" (identifier "iVar13") (== "==") (identifier "iVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_00145474;" (goto "goto") (statement_identifier "LAB_00145474") (; ";")) (} "}")))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" (identifier "FUN_00079e80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000e7e00(param_1[0xd]);" (call_expression "FUN_000e7e00(param_1[0xd])" (identifier "FUN_000e7e00") (argument_list "(param_1[0xd])" (( "(") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) () ")"))) (; ";")) (expression_statement "iVar8 = FUN_000bfe40(param_1[0xd]);" (assignment_expression "iVar8 = FUN_000bfe40(param_1[0xd])" (identifier "iVar8") (= "=") (call_expression "FUN_000bfe40(param_1[0xd])" (identifier "FUN_000bfe40") (argument_list "(param_1[0xd])" (( "(") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) () ")")))) (; ";")) (expression_statement "param_1[8] = iVar8;" (assignment_expression "param_1[8] = iVar8" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != iVar5)" (( "(") (binary_expression "iVar13 != iVar5" (identifier "iVar13") (!= "!=") (identifier "iVar5")) () ")")) (; ";"))) (} "}"))) (if_statement "if (piVar11[1] != iVar13) {\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" (if "if") (parenthesized_expression "(piVar11[1] != iVar13)" (( "(") (binary_expression "piVar11[1] != iVar13" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "iVar13")) () ")")) (compound_statement "{\n        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);\n      }" ({ "{") (expression_statement "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);" (call_expression "memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" (identifier "memmove") (argument_list "((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc)" (( "(") (cast_expression "(void *)piVar11[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (, ",") (cast_expression "(void *)(piVar11[2] + iVar13 * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[2] + iVar13 * 0xc)" (( "(") (binary_expression "piVar11[2] + iVar13 * 0xc" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "iVar13 * 0xc" (identifier "iVar13") (* "*") (number_literal "0xc"))) () ")"))) (, ",") (binary_expression "(piVar11[1] - iVar13) * 0xc" (parenthesized_expression "(piVar11[1] - iVar13)" (( "(") (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar13")) () ")")) (* "*") (number_literal "0xc")) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(local_d4 + 0xc) - iVar13" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar13"))) (; ";")) (expression_statement "piVar11[1] = piVar11[1] - iVar13;" (assignment_expression "piVar11[1] = piVar11[1] - iVar13" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "piVar11[1] - iVar13" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar13"))) (; ";")) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_c8[2] == 0) {\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" (if "if") (parenthesized_expression "(local_c8[2] == 0)" (( "(") (binary_expression "local_c8[2] == 0" (subscript_expression "local_c8[2]" (identifier "local_c8") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;\n        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;\n      }" ({ "{") (expression_statement "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;" (assignment_expression "*(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" (* "*") (cast_expression "(int *)(local_c4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + 4)" (( "(") (binary_expression "local_c4 + 4" (identifier "local_c4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(local_c4 + 4) + -1" (pointer_expression "*(int *)(local_c4 + 4)" (* "*") (cast_expression "(int *)(local_c4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + 4)" (( "(") (binary_expression "local_c4 + 4" (identifier "local_c4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;" (assignment_expression "*(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(int *)(local_d4 + 0xc) + -1" (pointer_expression "*(int *)(local_d4 + 0xc)" (* "*") (cast_expression "(int *)(local_d4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d4 + 0xc)" (( "(") (binary_expression "local_d4 + 0xc" (identifier "local_d4") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_000521f0();" (call_expression "FUN_000521f0()" (identifier "FUN_000521f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00066c70();" (call_expression "FUN_00066c70()" (identifier "FUN_00066c70") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_4 != (int *)0x0) {\n      *param_4 = *param_4 - local_44;\n    }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_4 = *param_4 - local_44;\n    }" ({ "{") (expression_statement "*param_4 = *param_4 - local_44;" (assignment_expression "*param_4 = *param_4 - local_44" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "*param_4 - local_44" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (- "-") (identifier "local_44"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00145058:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" (statement_identifier "LAB_00145058") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00153870();\n  }" ({ "{") (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" (identifier "FUN_00153870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 function_1(type_1 *p,type_2 **ppStruct,int var_2,int *var_3)

{
  int *piVar1;
  type_3 *var_13;
  type_4 *pBuf;
  int var_52;
  type_5 var_29;
  type_6 var_31;
  type_6 uVar6;
  type_3 **var_19;
  type_7 var_27;
  type_8 *var_34;
  type_9 *var_16;
  type_2 *pOld;
  bool bVar10;
  type_10 *pFVar11;
  int var_14;
  type_11 *var_36;
  char *var_44;
  type_12 *var_5;
  type_3 *var_12;
  int var_8;
  int var_4;
  type_13 *var_41;
  type_12 *var_46;
  int var_28;
  int var_1;
  bool bVar20;
  type_3 **in_stack_ffffff0c;
  type_14 *puVar21;
  type_15 uVar22;
  type_15 *puVar23;
  type_1 *var_11;
  int var_21;
  type_3 *var_17;
  type_10 *pIter;
  type_4 term;
  type_4 buf;
  type_12 writer;
  type_14 aHdr [4];
  
  var_52 = *(int *)(var_1 + 0x14);
  var_11 = (type_1 *)*ppStruct;
  pIter = (type_10 *)0x0;
  var_21 = 0;
  var_14 = var_2 * 0xc + 0x14;
  if (var_3 != (int *)0x0) {
    var_21 = *var_3;
  }
  term.p = (type_14 *)0x0;
  var_28 = p->pConfig->eDetail;
  term.n = 0;
  term.nSpace = 0;
  var_5 = &writer;
  for (var_4 = 0x17; var_4 != 0; var_4 = var_4 + -1) {
    var_5->iSegid = 0;
    var_5 = (type_12 *)&var_5->writer;
  }
  var_5 = *(type_12 **)((int)&var_11->iWriteRowid + var_2 * 0xc);
  if (var_5 == (type_12 *)0x0) {
    if (p->rc != 0) goto LAB_00145058;
    if (1999 < (int)var_11->pHash) {
      p->rc = 0xd;
      goto LAB_00145058;
    }
    var_5 = (type_12 *)var_6(var_11,(type_2 *)var_3);
    if (var_11->nPendingData + -1 == var_2) {
      pOld = *ppStruct;
      if (p->rc != 0) goto LAB_00145058;
      var_4 = pOld->nLevel;
      var_8 = var_7();
      if (var_8 == 0) {
        var_11 = (type_1 *)var_9(pOld,var_10(var_14,var_5));
        if (var_11 != (type_1 *)0x0) {
          puVar23 = (type_15 *)((int)&var_11->iWriteRowid + var_4 * 0xc);
          *puVar23 = 0;
          puVar23[1] = 0;
          puVar23[2] = 0;
          var_11->nPendingData = var_11->nPendingData + 1;
          *ppStruct = (type_2 *)var_11;
          goto LAB_0014574e;
        }
      }
    }
    else {
LAB_0014574e:
      if (p->rc != 0) goto LAB_00145058;
      var_12 = (&var_11->pWriter)[var_2 * 3];
      var_4 = var_7();
      if ((var_4 == 0) &&
         (var_12 = (type_3 *)var_9(var_12,var_10(var_14,var_5)),
         var_12 != (type_3 *)0x0)) {
        var_13 = var_12 + (int)(&var_11->pReader)[var_2 * 3] * 0xc;
        *(type_15 *)var_13 = 0;
        *(type_15 *)(var_13 + 4) = 0;
        *(type_15 *)(var_13 + 8) = 0;
        (&var_11->pWriter)[var_2 * 3] = var_12;
        if (p->rc != 0) goto LAB_00145058;
        puVar23 = (type_15 *)((int)&var_11->pConfig + var_14);
        uVar22 = 0x1457e7;
        var_15(p,var_5,(int)puVar23);
        var_16 = (&var_11->pReader)[var_2 * 3];
        (&var_11->pReader)[var_2 * 3] = var_16 + 1;
        var_17 = (&var_11->pWriter)[var_2 * 3] + (int)var_16 * 0xc;
        *(type_15 *)(var_17 + 4) = 1;
        *(type_12 **)var_17 = var_5;
        var_11->pHash = (type_16 *)((int)&var_11->pHash->eDetail + 1);
        var_5 = *(type_12 **)((int)&var_11->iWriteRowid + var_2 * 0xc + 4);
        goto LAB_001450d9;
      }
    }
    p->rc = 7;
  }
  else {
    puVar23 = (type_15 *)((int)&var_11->iWriteRowid + var_2 * 0xc);
    var_17 = (&var_11->pWriter)[var_2 * 3] + (int)(&var_11->pReader)[var_2 * 3] * 0xc + -0xc;
    uVar22 = 0x1450c0;
    var_15(p,var_5,(int)puVar23);
    writer.iBtPage = 0;
    writer.writer.pgno = *(int *)(var_17 + 8) + 1;
LAB_001450d9:
    bVar20 = false;
    if ((&var_11->pReader)[var_2 * 3] == (type_9 *)&DAT_00000001) {
      bVar20 = var_11->nPendingData == var_2 + 2;
    }
    var_18(p,(type_2 *)var_11,0x20,(type_17 *)0x0,(type_14 *)0x0,0,var_2,
                     (int)var_5,&pIter);
    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {
      piVar1 = &p->rc;
      bVar10 = false;
      pBuf = &writer.writer.buf;
      do {
        pFVar11 = pIter;
        var_31 = pIter->aFirst[1].iFirst;
        var_19 = (type_3 **)pIter->aSeg[var_31].term.n;
        puVar21 = pIter->aSeg[var_31].term.p;
        if (((type_3 **)term.n != var_19) ||
           ((var_19 != (type_3 **)0x0 &&
            (in_stack_ffffff0c = var_19, var_14 = var_20(puVar21,term.p,(size_t)var_19), var_14 != 0)))) {
          if ((var_3 != (int *)0x0) && (var_21 < writer.nLeafWritten)) break;
          term.n = 0;
          var_22(piVar1,&term,(type_18)var_19,puVar21);
          bVar10 = false;
        }
        if ((pFVar11->aSeg[var_31].nPos != 0) || ((!bVar20 && (pFVar11->aSeg[var_31].bDel != '\0'))))
        {
          var_14 = p->rc;
          if (!bVar10 && var_14 == 0) {
            var_23(p,&writer,(int)var_19,puVar21);
            var_14 = p->rc;
            bVar10 = true;
          }
          if (var_14 == 0) {
            uVar6 = pIter->aFirst[1].iFirst;
            var_27 = (type_7)pIter->aSeg[uVar6].iRowid;
            var_14 = *(int *)((int)&pIter->aSeg[uVar6].iRowid + 4);
            if (p->pConfig->pgsz <= writer.writer.pgidx.n + writer.writer.buf.n) {
              uVar22 = 0x145a64;
              var_24(p,&writer);
            }
            if (writer.bFirstRowidInPage != '\0') {
              *(type_6 *)writer.writer.buf.p =
                   (type_6)writer.writer.buf.n << 8 | (type_6)writer.writer.buf.n >> 8;
              var_25(p,&writer,var_10(var_14,var_27));
            }
            if (writer._56_2_ == 0) {
              var_26
                        (piVar1,pBuf,
                         var_10((var_14 - writer.iPrevRowid._4_4_) -
                                  (type_7)(var_27 < (type_7)writer.iPrevRowid),
                                  var_27 - (type_7)writer.iPrevRowid));
            }
            else {
              var_26(piVar1,pBuf,var_10(var_14,var_27));
            }
            writer.bFirstRowidInDoclist = '\0';
            writer.bFirstRowidInPage = '\0';
            writer.iPrevRowid._0_4_ = var_27;
            writer.iPrevRowid._4_4_ = var_14;
          }
          var_29 = pFVar11->aSeg[var_31].bDel;
          if (var_28 == 1) {
            if ((var_29 != 0) &&
               (var_26(piVar1,pBuf,0), 0 < pFVar11->aSeg[var_31].nPos)) {
              var_26(piVar1,pBuf,0);
            }
          }
          else {
            var_26
                      (piVar1,pBuf,(longlong)(int)((type_7)var_29 + pFVar11->aSeg[var_31].nPos * 2));
            var_30(p,pFVar11->aSeg + var_31,&writer,fts5MergeChunkCallback);
          }
        }
        var_32((type_1 *)0x0,(type_10 *)0x0,(int)in_stack_ffffff0c,
                          var_10(var_5,uVar22));
        if ((p->rc != 0) || ((pIter->base).bEof != '\0')) break;
      } while( true );
    }
    uVar22 = 0x145302;
    var_33(p,&writer,(int *)(var_17 + 8));
    pFVar11 = pIter;
    if ((p->rc == 0) && ((pIter->base).bEof == '\0')) {
      var_14 = pIter->nSeg;
      var_41 = pIter->aSeg;
      buf.p = (type_14 *)0x0;
      piVar1 = &p->rc;
      buf.n = 0;
      buf.nSpace = 0;
      if (0 < var_14) {
        var_28 = 0;
        do {
          var_34 = var_41->pSeg;
          if (var_34 != (type_8 *)0x0) {
            if (var_41->pLeaf == (type_11 *)0x0) {
              var_34->pgnoLast = 0;
              var_41->pSeg->pgnoFirst = 0;
              var_14 = pFVar11->nSeg;
            }
            else {
              var_14 = var_34->iSegid;
              var_4 = var_41->iTermLeafOffset;
              aHdr[0] = '\0';
              aHdr[1] = '\0';
              aHdr[2] = '\0';
              aHdr[3] = '\0';
              var_8 = var_41->iTermLeafPgno;
              puVar21 = (type_14 *)0x1453b9;
              var_36 = var_35(p,var_10(puVar23,var_5));
              if (var_36 != (type_11 *)0x0) {
                if (var_36->nn < var_36->szLeaf) {
                  p->rc = 0x10b;
                  var_37(var_36);
                }
                else {
                  if (var_36->szLeaf < var_4) {
                    p->rc = 0x10b;
                  }
                  else {
                    buf.n = 0;
                    if ((type_7)buf.nSpace < (type_4 *)var_36->nn) {
                      var_38(piVar1,&buf,(type_18)&buf.nSpace,(type_4 *)var_36->nn);
                    }
                    var_22(piVar1,&buf,4,aHdr);
                    var_26(piVar1,&buf,(longlong)(var_41->term).n);
                    var_22(piVar1,&buf,(var_41->term).n,(var_41->term).p);
                    var_22(piVar1,&buf,var_36->szLeaf - var_4,var_36->p + var_4);
                    if (p->rc == 0) {
                      *(type_6 *)(buf.p + 2) = (type_6)buf.n << 8 | (type_6)buf.n >> 8;
                    }
                    var_26(piVar1,&buf,4);
                    var_4 = var_41->iTermLeafPgno;
                    if (var_41->iLeafPgno == var_4) {
                      if (var_41->iEndofDoclist < var_36->szLeaf) {
                        var_26
                                  (piVar1,&buf,
                                   (longlong)(buf.n + (var_41->iEndofDoclist - var_36->szLeaf) + -5))
                        ;
                        var_22
                                  (piVar1,&buf,var_36->nn - var_41->iPgidxOff,
                                   var_36->p + var_41->iPgidxOff);
                        var_4 = var_41->iTermLeafPgno;
                      }
                    }
                    var_41->pSeg->pgnoFirst = var_4;
                    var_39(p,var_10((var_8 >> 0x1f) + var_14 * 0x20,var_8),
                                   var_10(puVar21,in_stack_ffffff0c));
                    var_40((type_1 *)buf.p,var_10(in_stack_ffffff0c,buf.n),puVar21,
                                  (int)var_5);
                  }
                  var_37(var_36);
                }
              }
              var_14 = pFVar11->nSeg;
            }
          }
          var_28 = var_28 + 1;
        } while ((var_28 < var_14) && (var_41 = var_41 + 1, p->rc == 0));
      }
      var_42(&buf);
      *puVar23 = var_5;
    }
    else {
      var_46 = (type_12 *)0x0;
      if (0 < (int)var_5) {
LAB_00145474:
        do {
          var_14 = *(int *)((int)var_46 * 0xc + puVar23[2]);
          var_39(p,var_10((var_14 + 1) * 0x20 + -1,0xffffffff),
                         var_10(uVar22,in_stack_ffffff0c));
          if (p->pIdxDeleter == (type_3 *)0x0) {
            in_stack_ffffff0c = (type_3 **)p->pConfig->zName;
            var_44 = var_43("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",p->pConfig->zDb);
            if (p->rc == 0) {
              if (var_44 == (char *)0x0) {
                p->rc = 7;
                var_37((void *)0x0);
                goto LAB_001454c4;
              }
              uVar22 = 0;
              in_stack_ffffff0c = &p->pIdxDeleter;
              var_28 = var_45
                                 (p->pConfig->db,var_44,0x85,0,(type_19 *)&p->pIdxDeleter,
                                  (type_3 **)0x0,(char **)var_5);
              p->rc = var_28;
            }
            var_37(var_44);
          }
LAB_001454c4:
          if (p->rc != 0) {
            var_46 = (type_12 *)((int)&var_46->iSegid + 1);
            if (var_5 == var_46) break;
            goto LAB_00145474;
          }
          var_46 = (type_12 *)((int)&var_46->iSegid + 1);
          uVar22 = 0x1454de;
          var_47(p->pIdxDeleter,var_14,var_10(puVar23,var_5));
          var_48(p->pIdxDeleter);
          var_14 = var_49(p->pIdxDeleter);
          p->rc = var_14;
        } while (var_5 != var_46);
      }
      if ((type_12 *)puVar23[1] != var_5) {
        var_50((void *)puVar23[2],(void *)((int)puVar23[2] + (int)var_5 * 0xc),
                ((int)puVar23[1] - (int)var_5) * 0xc);
      }
      var_11->pHash = (type_16 *)((int)var_11->pHash - (int)var_5);
      puVar23[1] = puVar23[1] - (int)var_5;
      *puVar23 = 0;
      if (*(int *)(var_17 + 8) == 0) {
        (&var_11->pReader)[var_2 * 3] = (&var_11->pReader)[var_2 * 3] + -1;
        var_11->pHash = (type_16 *)((int)&var_11->pHash[-1].aSlot + 3);
      }
    }
    var_51(pIter);
    var_42(&term);
    if (var_3 != (int *)0x0) {
      *var_3 = *var_3 - writer.nLeafWritten;
    }
  }
LAB_00145058:
  if (var_52 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_53();
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void __regparm3 MASKED(int *param_1,int *param_2,int param_3,int *param_4)

{
  undefined4 *puVar1;
  size_t __n;
  void *__s1;
  uint uVar2;
  int iVar3;
  bool bVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  int iVar13;
  int *piVar14;
  int in_GS_OFFSET;
  bool bVar15;
  int local_d4;
  int local_d0;
  undefined4 *local_c8;
  int local_c4;
  int local_9c;
  void *local_98;
  size_t local_94;
  undefined4 local_90;
  int local_8c;
  int local_88;
  uint local_84;
  int local_80 [3];
  ushort *local_74;
  int local_70;
  int local_64;
  uint local_50;
  int local_4c;
  undefined2 local_48;
  int local_44;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_d4 = *param_2;
  local_9c = 0;
  local_d0 = 0;
  iVar5 = param_3 * 0xc + 0x14;
  if (param_4 != (int *)0x0) {
    local_d0 = *param_4;
  }
  local_98 = (void *)0x0;
  iVar8 = *(int *)(*param_1 + 0x30);
  local_94 = 0;
  local_90 = 0;
  piVar11 = local_80;
  for (iVar13 = 0x17; iVar13 != 0; iVar13 = iVar13 + -1) {
    *piVar11 = 0;
    piVar11 = piVar11 + 1;
  }
  iVar13 = *(int *)(local_d4 + 0x14 + param_3 * 0xc);
  if (iVar13 == 0) {
    if (param_1[8] != 0) goto LAB_00145058;
    if (1999 < *(int *)(local_d4 + 0xc)) {
      param_1[8] = 0xd;
      goto LAB_00145058;
    }
    uVar9 = FUN_00047b60();
    if (*(int *)(local_d4 + 0x10) + -1 == param_3) {
      if (param_1[8] != 0) goto LAB_00145058;
      iVar13 = *(int *)(*param_2 + 0x10);
      iVar10 = FUN_00067fc0();
      if (iVar10 == 0) {
        local_d4 = FUN_00055930();
        if (local_d4 != 0) {
          puVar1 = (undefined4 *)(local_d4 + 8 + (iVar13 * 3 + 3) * 4);
          *puVar1 = 0;
          puVar1[1] = 0;
          puVar1[2] = 0;
          *(int *)(local_d4 + 0x10) = *(int *)(local_d4 + 0x10) + 1;
          *param_2 = local_d4;
          goto LAB_0014574e;
        }
      }
    }
    else {
LAB_0014574e:
      if (param_1[8] != 0) goto LAB_00145058;
      iVar13 = local_d4 + (param_3 + 1) * 0xc;
      iVar10 = FUN_00067fc0();
      if ((iVar10 == 0) && (iVar10 = FUN_00055930(), iVar10 != 0)) {
        puVar1 = (undefined4 *)(iVar10 + *(int *)(iVar13 + 0x18) * 0xc);
        *puVar1 = 0;
        puVar1[1] = 0;
        puVar1[2] = 0;
        *(int *)(iVar13 + 0x1c) = iVar10;
        if (param_1[8] != 0) goto LAB_00145058;
        piVar11 = (int *)(iVar5 + local_d4);
        FUN_00100e40();
        iVar5 = *(int *)(iVar13 + 0x18);
        *(int *)(iVar13 + 0x18) = iVar5 + 1;
        local_c8 = (undefined4 *)(*(int *)(iVar13 + 0x1c) + iVar5 * 0xc);
        local_c8[1] = 1;
        *local_c8 = uVar9;
        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + 1;
        iVar13 = *(int *)(local_d4 + 0x18 + param_3 * 0xc);
        goto LAB_001450d9;
      }
    }
    param_1[8] = 7;
  }
  else {
    piVar11 = (int *)(iVar5 + local_d4);
    iVar5 = local_d4 + (param_3 + 1) * 0xc;
    local_c8 = (undefined4 *)(*(int *)(iVar5 + 0x1c) + -0xc + *(int *)(iVar5 + 0x18) * 0xc);
    FUN_00100e40(iVar13,piVar11,local_80);
    local_28 = 0;
    local_80[1] = local_c8[2] + 1;
LAB_001450d9:
    local_c4 = local_d4 + 0x20 + param_3 * 0xc;
    bVar15 = false;
    if (*(int *)(local_c4 + 4) == 1) {
      bVar15 = *(int *)(local_d4 + 0x10) == param_3 + 2;
    }
    FUN_00143110(0,0,0,param_3,iVar13,&local_9c);
    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {
      bVar4 = false;
      do {
        iVar5 = local_9c;
        uVar6 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4);
        iVar10 = uVar6 * 0x58 + local_9c;
        __n = *(size_t *)(iVar10 + 0x84);
        __s1 = *(void **)(iVar10 + 0x80);
        if ((local_94 != __n) || ((__n != 0 && (iVar10 = memcmp(__s1,local_98,__n), iVar10 != 0))))
        {
          if ((param_4 != (int *)0x0) && (local_d0 < local_44)) break;
          local_94 = 0;
          FUN_0009a550(__s1);
          bVar4 = false;
        }
        iVar10 = uVar6 * 0x58 + iVar5;
        if ((*(int *)(iVar10 + 0x94) != 0) || ((!bVar15 && (*(char *)(iVar10 + 0x98) != '\0')))) {
          iVar10 = param_1[8];
          if (!bVar4 && iVar10 == 0) {
            FUN_0010df50(__s1);
            iVar10 = param_1[8];
            bVar4 = true;
          }
          if (iVar10 == 0) {
            iVar10 = (uint)*(ushort *)(*(int *)(local_9c + 0x40) + 4) * 0x58;
            uVar2 = *(uint *)(local_9c + 0x8c + iVar10);
            iVar10 = *(int *)(local_9c + 0x90 + iVar10);
            if (*(int *)(*param_1 + 0x44) <= local_64 + local_70) {
              FUN_001087a0();
            }
            if (local_48._1_1_ != '\0') {
              *local_74 = (ushort)local_70 << 8 | (ushort)local_70 >> 8;
              FUN_00126590(uVar2,iVar10);
            }
            if (local_48 == 0) {
              FUN_0009b360(uVar2 - local_50,(iVar10 - local_4c) - (uint)(uVar2 < local_50));
            }
            else {
              FUN_0009b360(uVar2,iVar10);
            }
            local_48 = 0;
            local_50 = uVar2;
            local_4c = iVar10;
          }
          iVar5 = iVar5 + uVar6 * 0x58;
          if (iVar8 == 1) {
            if ((*(byte *)(iVar5 + 0x98) != 0) && (FUN_0009b360(0,0), 0 < *(int *)(iVar5 + 0x94))) {
              FUN_0009b360(0,0);
            }
          }
          else {
            iVar5 = (uint)*(byte *)(iVar5 + 0x98) + *(int *)(iVar5 + 0x94) * 2;
            FUN_0009b360(iVar5,iVar5 >> 0x1f);
            FUN_001148c0(FUN_0011d990);
          }
        }
        FUN_00142ae0(0,0);
        if ((param_1[8] != 0) || (*(char *)(local_9c + 0x10) != '\0')) break;
      } while( true );
    }
    FUN_0010e2d0();
    iVar5 = local_9c;
    if ((param_1[8] == 0) && (*(char *)(local_9c + 0x10) == '\0')) {
      iVar8 = *(int *)(local_9c + 0x2c);
      piVar14 = (int *)(local_9c + 0x44);
      local_8c = 0;
      local_88 = 0;
      local_84 = 0;
      if (0 < iVar8) {
        iVar10 = 0;
        do {
          piVar7 = (int *)*piVar14;
          if (piVar7 != (int *)0x0) {
            if (piVar14[3] == 0) {
              piVar7[2] = 0;
              *(undefined4 *)(*piVar14 + 4) = 0;
              iVar8 = *(int *)(iVar5 + 0x2c);
            }
            else {
              iVar8 = *piVar7;
              iVar12 = piVar14[8];
              local_24 = 0;
              iVar3 = piVar14[7];
              piVar7 = (int *)FUN_001133e0();
              if (piVar7 != (int *)0x0) {
                if (piVar7[1] < piVar7[2]) {
                  param_1[8] = 0x10b;
                  FUN_00044000(piVar7);
                }
                else {
                  if (piVar7[2] < iVar12) {
                    param_1[8] = 0x10b;
                  }
                  else {
                    local_88 = 0;
                    if (local_84 < (uint)piVar7[1]) {
                      FUN_0009a490(piVar7[1]);
                    }
                    FUN_0009a550(&local_24);
                    FUN_0009b360(piVar14[0x10],piVar14[0x10] >> 0x1f);
                    FUN_0009a550(piVar14[0xf]);
                    FUN_0009a550(iVar12 + *piVar7);
                    if (param_1[8] == 0) {
                      *(ushort *)(local_8c + 2) = (ushort)local_88 << 8 | (ushort)local_88 >> 8;
                    }
                    FUN_0009b360(4,0);
                    iVar12 = piVar14[7];
                    if (piVar14[2] == iVar12) {
                      if (piVar14[10] < piVar7[2]) {
                        iVar12 = local_88 + (piVar14[10] - piVar7[2]) + -5;
                        FUN_0009b360(iVar12,iVar12 >> 0x1f);
                        FUN_0009a550(piVar14[9] + *piVar7);
                        iVar12 = piVar14[7];
                      }
                    }
                    *(int *)(*piVar14 + 4) = iVar12;
                    FUN_001088b0(iVar3,(iVar3 >> 0x1f) + iVar8 * 0x20);
                    FUN_00108640(local_8c,local_88);
                  }
                  FUN_00044000(piVar7);
                }
              }
              iVar8 = *(int *)(iVar5 + 0x2c);
            }
          }
          iVar10 = iVar10 + 1;
        } while ((iVar10 < iVar8) && (piVar14 = piVar14 + 0x16, param_1[8] == 0));
      }
      FUN_00066c70();
      *piVar11 = iVar13;
    }
    else {
      iVar5 = 0;
      if (0 < iVar13) {
LAB_00145474:
        do {
          iVar8 = *(int *)(iVar5 * 0xc + piVar11[2]);
          iVar10 = iVar8 >> 0x1f;
          FUN_001088b0(0xffffffff,(iVar8 + 1) * 0x20 + -1);
          if (param_1[0xd] == 0) {
            iVar12 = FUN_000a3060("DELETE FROM \'%q\'.\'%q_idx\' WHERE segid=?",
                                  *(undefined4 *)(*param_1 + 4),*(undefined4 *)(*param_1 + 8));
            if (param_1[8] == 0) {
              if (iVar12 == 0) {
                param_1[8] = 7;
                FUN_00044000(0);
                goto LAB_001454c4;
              }
              iVar8 = FUN_00100700(0x85,0,param_1 + 0xd,0,iVar13,piVar11,iVar8,iVar10);
              param_1[8] = iVar8;
            }
            FUN_00044000(iVar12);
          }
LAB_001454c4:
          if (param_1[8] != 0) {
            iVar5 = iVar5 + 1;
            if (iVar13 == iVar5) break;
            goto LAB_00145474;
          }
          iVar5 = iVar5 + 1;
          FUN_00079e80();
          FUN_000e7e00(param_1[0xd]);
          iVar8 = FUN_000bfe40(param_1[0xd]);
          param_1[8] = iVar8;
        } while (iVar13 != iVar5);
      }
      if (piVar11[1] != iVar13) {
        memmove((void *)piVar11[2],(void *)(piVar11[2] + iVar13 * 0xc),(piVar11[1] - iVar13) * 0xc);
      }
      *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) - iVar13;
      piVar11[1] = piVar11[1] - iVar13;
      *piVar11 = 0;
      if (local_c8[2] == 0) {
        *(int *)(local_c4 + 4) = *(int *)(local_c4 + 4) + -1;
        *(int *)(local_d4 + 0xc) = *(int *)(local_d4 + 0xc) + -1;
      }
    }
    FUN_000521f0();
    FUN_00066c70();
    if (param_4 != (int *)0x0) {
      *param_4 = *param_4 - local_44;
    }
  }
LAB_00145058:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return;
}

