
void sqlite3DeleteFrom(Parse *pParse,SrcList *pTabList,Expr *pWhere,ExprList *pOrderBy,Expr *pLimit)

{
  byte eMode;
  int iCur;
  long lVar1;
  sqlite3 *db;
  Select *pSVar2;
  long lVar3;
  ulong uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  Table *pTab;
  Trigger *pTrigger;
  Index *pIVar9;
  Vdbe *p;
  WhereInfo *pWInfo;
  char *zP4;
  u8 *aToOpen;
  long lVar10;
  long in_FS_OFFSET;
  int local_128;
  VTable *local_118;
  uint local_10c;
  uint local_f0;
  u16 local_e8;
  int local_e4;
  Index *local_d8;
  int local_c8;
  int local_c4;
  int local_c0;
  int iDataCur;
  int iIdxCur;
  AuthContext sContext;
  NameContext sNC;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  iDataCur = 0;
  iIdxCur = 0;
  sContext.zAuthContext = (char *)0x0;
  sContext.pParse = (Parse *)0x0;
  db = pParse->db;
  aToOpen = (u8 *)0x0;
  if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||
     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)) goto LAB_00175a84;
  pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0);
  pSVar2 = pTab->pSelect;
  local_10c = 1;
  if (pTrigger == (Trigger *)0x0) {
    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);
    local_10c = (uint)(iVar5 != 0);
  }
  iVar5 = sqlite3ViewGetColumnNames(pParse,pTab);
  aToOpen = (u8 *)0x0;
  if ((iVar5 != 0) ||
     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))
  goto LAB_00175a84;
  iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema);
  iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName);
  if (iVar6 == 1) goto LAB_00175a84;
  iCur = pParse->nTab;
  pParse->nTab = iCur + 1;
  pTabList->a[0].iCursor = iCur;
  pIVar9 = pTab->pIndex;
  local_f0 = 0;
  if (pIVar9 != (Index *)0x0) {
    local_f0 = 0;
    do {
      pParse->nTab = pParse->nTab + 1;
      pIVar9 = pIVar9->pNext;
      local_f0 = local_f0 + 1;
    } while (pIVar9 != (Index *)0x0);
  }
  if (pSVar2 != (Select *)0x0) {
    sContext.zAuthContext = pParse->zAuthContext;
    pParse->zAuthContext = pTab->zName;
    sContext.pParse = pParse;
  }
  p = sqlite3GetVdbe(pParse);
  aToOpen = (u8 *)0x0;
  if (p == (Vdbe *)0x0) goto LAB_00175a84;
  if (pParse->nested == '\0') {
    p->field_0xc6 = p->field_0xc6 | 0x10;
  }
  sqlite3BeginWriteOperation(pParse,local_10c,iVar5);
  if (pSVar2 != (Select *)0x0) {
    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);
    iDataCur = iCur;
    iIdxCur = iCur;
  }
  sNC.uNC.pEList = (ExprList *)0x0;
  sNC.pNext = (NameContext *)0x0;
  sNC.nRef = 0;
  sNC.nErr = 0;
  sNC.ncFlags = 0;
  sNC._44_4_ = 0;
  sNC.pWinSelect = (Select *)0x0;
  sNC.pParse = pParse;
  sNC.pSrcList = pTabList;
  iVar7 = sqlite3ResolveExprNames(&sNC,pWhere);
  aToOpen = (u8 *)0x0;
  if (iVar7 != 0) goto LAB_00175a84;
  local_e4 = 0;
  if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&
     (pParse->pTriggerTab == (Table *)0x0)) {
    local_e4 = pParse->nMem + 1;
    pParse->nMem = local_e4;
    sqlite3VdbeAddOp2(p,0x45,0,local_e4);
  }
  if (((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)) {
    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);
    if ((pTab->tabFlags & 0x80) == 0) {
      iVar6 = -1;
      if (local_e4 != 0) {
        iVar6 = local_e4;
      }
      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);
    }
    pIVar9 = pTab->pIndex;
    if (pIVar9 == (Index *)0x0) {
      aToOpen = (u8 *)0x0;
    }
    else {
      do {
        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);
        pIVar9 = pIVar9->pNext;
      } while (pIVar9 != (Index *)0x0);
      aToOpen = (u8 *)0x0;
    }
  }
  else {
    uVar4 = sNC._40_8_ & 0x40;
    if ((pTab->tabFlags & 0x80) == 0) {
      local_c4 = pParse->nMem + 1;
      pParse->nMem = local_c4;
      sqlite3VdbeAddOp2(p,0x48,0,local_c4);
      local_e8 = 1;
      local_d8 = (Index *)0x0;
      local_c8 = 0;
      local_c0 = 0;
      local_128 = 0;
    }
    else {
      local_d8 = sqlite3PrimaryKeyIndex(pTab);
      local_e8 = local_d8->nKeyCol;
      local_128 = pParse->nMem + 1;
      pParse->nMem = pParse->nMem + (int)(short)local_e8;
      local_c8 = pParse->nTab;
      pParse->nTab = local_c8 + 1;
      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);
      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);
      local_c4 = 0;
    }
    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,
                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);
    aToOpen = (u8 *)0x0;
    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;
    lVar3 = *(long *)pWInfo->aiCurOnePass;
    eMode = pWInfo->eOnePass;
    uVar8 = (uint)eMode;
    if (uVar8 != 1) {
      sqlite3MultiWrite(pParse);
    }
    if (local_e4 != 0) {
      sqlite3VdbeAddOp2(p,0x52,local_e4,1);
    }
    iVar5 = (int)((ulong)lVar3 >> 0x20);
    if (local_d8 == (Index *)0x0) {
      local_128 = pParse->nMem + 1;
      pParse->nMem = local_128;
      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);
      if (uVar8 != 0) goto LAB_0017622b;
      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);
      sqlite3WhereEnd(pWInfo);
      if (pSVar2 == (Select *)0x0) {
        local_e8 = 1;
        aToOpen = (u8 *)0x0;
        local_f0 = uVar8;
LAB_001761b5:
        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);
      }
      else {
        local_e8 = 1;
        aToOpen = (u8 *)0x0;
        local_f0 = uVar8;
      }
      if (uVar8 != 0) goto LAB_001762b7;
      if (local_d8 == (Index *)0x0) {
        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);
      }
      else {
LAB_00175f34:
        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);
        if (pTab->nModuleArg == 0) {
          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);
        }
        else {
          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);
        }
      }
      if (pTab->nModuleArg == 0) goto LAB_00175f7d;
      local_118 = sqlite3GetVTable(db,pTab);
      sqlite3VtabMakeWritable(pParse,pTab);
      sqlite3MayAbort(pParse);
LAB_001764bf:
      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);
      sqlite3VdbeChangeP5(p,2);
    }
    else {
      iVar6 = (int)(short)local_e8;
      if (0 < (short)local_e8) {
        lVar10 = 0;
        do {
          sqlite3ExprCodeGetColumnOfTable
                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);
          lVar10 = lVar10 + 1;
        } while ((ulong)(iVar6 - 1) + 1 != lVar10);
      }
      if (uVar8 == 0) {
        iVar7 = pParse->nMem + 1;
        pParse->nMem = iVar7;
        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);
        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);
        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);
        sqlite3WhereEnd(pWInfo);
        local_128 = iVar7;
        if (pSVar2 != (Select *)0x0) {
          local_e8 = 0;
          aToOpen = (u8 *)0x0;
          local_f0 = uVar8;
          goto LAB_00175f34;
        }
        local_e8 = 0;
        aToOpen = (u8 *)0x0;
        local_f0 = uVar8;
LAB_00176334:
        if (uVar8 != 2) goto LAB_001761b5;
        iVar6 = sqlite3VdbeAddOp0(p,0x11);
        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);
        sqlite3VdbeJumpHereOrPopInst(p,iVar6);
      }
      else {
LAB_0017622b:
        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));
        if (aToOpen == (u8 *)0x0) {
          sqlite3WhereEnd(pWInfo);
          goto LAB_00175a84;
        }
        memset(aToOpen,1,(long)(int)(local_f0 + 1));
        aToOpen[(long)(int)local_f0 + 1] = '\0';
        if (-1 < (int)lVar3) {
          aToOpen[(int)lVar3 - iCur] = '\0';
        }
        if (-1 < lVar3) {
          aToOpen[iVar5 - iCur] = '\0';
        }
        if (local_c0 != 0) {
          sqlite3VdbeChangeToNoop(p,local_c0);
        }
        local_f0 = pParse->nLabel - 1;
        pParse->nLabel = local_f0;
        if (pSVar2 == (Select *)0x0) goto LAB_00176334;
      }
LAB_001762b7:
      if (pTab->nModuleArg != 0) {
LAB_001763f0:
        local_118 = sqlite3GetVTable(db,pTab);
        sqlite3VtabMakeWritable(pParse,pTab);
        sqlite3MayAbort(pParse);
        iVar6 = 0;
        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {
          pParse->isMultiWrite = '\0';
        }
        goto LAB_001764bf;
      }
      if (aToOpen[iDataCur - iCur] == '\0') {
        iVar6 = 0;
      }
      else {
        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);
        if (pTab->nModuleArg != 0) goto LAB_001763f0;
        iVar6 = 0;
      }
LAB_00175f7d:
      sqlite3GenerateRowDelete
                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',
                 '\v',eMode,iVar5);
    }
    if (uVar8 == 0) {
      if (local_d8 == (Index *)0x0) {
        sqlite3VdbeGoto(p,iVar6);
        sqlite3VdbeJumpHere(p,iVar6);
      }
      else {
        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);
        sqlite3VdbeJumpHere(p,iVar6);
      }
    }
    else {
      sqlite3VdbeResolveLabel(p,local_f0);
      sqlite3WhereEnd(pWInfo);
    }
  }
  if ((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) {
    sqlite3AutoincrementEnd(pParse);
  }
  if (local_e4 != 0) {
    sqlite3VdbeAddOp2(p,0x50,local_e4,1);
    sqlite3VdbeSetNumCols(p,1);
    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);
  }
LAB_00175a84:
  if (sContext.pParse != (Parse *)0x0) {
    (sContext.pParse)->zAuthContext = sContext.zAuthContext;
    sContext.pParse = (Parse *)0x0;
  }
  sqlite3SrcListDelete(db,pTabList);
  sqlite3ExprDelete(db,pWhere);
  sqlite3DbFree(db,aToOpen);
  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}



void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)

{
  int iVar1;
  long lVar2;
  long lVar3;
  ulong uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  long *plVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  undefined8 uVar14;
  void *__s;
  long lVar15;
  long lVar16;
  long in_FS_OFFSET;
  bool bVar17;
  undefined8 local_118;
  uint local_f0;
  short local_e8;
  int local_e4;
  long local_d8;
  int local_c8;
  int local_c4;
  int local_c0;
  int local_90;
  int local_8c;
  long local_88;
  long *local_80;
  long *local_78;
  long local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  ulong local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_90 = 0;
  local_8c = 0;
  local_88 = 0;
  local_80 = (long *)0x0;
  lVar2 = *param_1;
  __s = (void *)0x0;
  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||
     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;
  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);
  lVar16 = plVar10[3];
  bVar17 = true;
  if (lVar11 == 0) {
    iVar5 = FUN_001116f3(param_1,plVar10,0,0);
    bVar17 = iVar5 != 0;
  }
  iVar5 = FUN_001684fe(param_1,plVar10);
  __s = (void *)0x0;
  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))
  goto LAB_00175a84;
  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);
  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,
                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));
  if (iVar6 == 1) goto LAB_00175a84;
  iVar1 = *(int *)((long)param_1 + 0x34);
  *(int *)((long)param_1 + 0x34) = iVar1 + 1;
  *(int *)(param_2 + 0x48) = iVar1;
  lVar12 = plVar10[2];
  local_f0 = 0;
  if (lVar12 != 0) {
    local_f0 = 0;
    do {
      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;
      lVar12 = *(long *)(lVar12 + 0x28);
      local_f0 = local_f0 + 1;
    } while (lVar12 != 0);
  }
  if (lVar16 != 0) {
    local_88 = param_1[0x2c];
    param_1[0x2c] = *plVar10;
    local_80 = param_1;
  }
  lVar12 = FUN_00121a1e(param_1);
  __s = (void *)0x0;
  if (lVar12 == 0) goto LAB_00175a84;
  if (*(char *)((long)param_1 + 0x1e) == '\0') {
    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;
  }
  FUN_00152f68(param_1,bVar17,iVar5);
  if (lVar16 != 0) {
    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);
    local_90 = iVar1;
    local_8c = iVar1;
  }
  local_68 = 0;
  local_60 = 0;
  local_58 = 0;
  local_50 = 0;
  local_48 = 0;
  local_78 = param_1;
  local_70 = param_2;
  iVar7 = FUN_0012ce42(&local_78,param_3);
  __s = (void *)0x0;
  if (iVar7 != 0) goto LAB_00175a84;
  local_e4 = 0;
  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&
     (param_1[0x15] == 0)) {
    local_e4 = (int)param_1[7] + 1;
    *(int *)(param_1 + 7) = local_e4;
    FUN_001207c0(lVar12,0x45,0,local_e4);
  }
  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))
  {
    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);
    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {
      iVar6 = -1;
      if (local_e4 != 0) {
        iVar6 = local_e4;
      }
      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);
    }
    lVar16 = plVar10[2];
    if (lVar16 == 0) {
      __s = (void *)0x0;
    }
    else {
      do {
        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);
        lVar16 = *(long *)(lVar16 + 0x28);
      } while (lVar16 != 0);
      __s = (void *)0x0;
    }
  }
  else {
    uVar4 = local_50 & 0x40;
    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {
      local_c4 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = local_c4;
      FUN_001207c0(lVar12,0x48,0,local_c4);
      local_e8 = 1;
      local_d8 = 0;
      local_c8 = 0;
      local_c0 = 0;
      iVar5 = 0;
    }
    else {
      local_d8 = FUN_00111247(plVar10);
      local_e8 = *(short *)(local_d8 + 0x5e);
      iVar5 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;
      local_c8 = *(int *)((long)param_1 + 0x34);
      *(int *)((long)param_1 + 0x34) = local_c8 + 1;
      local_c0 = FUN_001207c0(lVar12,100);
      FUN_0013744b(param_1,local_d8);
      local_c4 = 0;
    }
    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,
                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);
    __s = (void *)0x0;
    if (lVar13 == 0) goto LAB_00175a84;
    lVar3 = *(long *)(lVar13 + 0x28);
    uVar8 = (uint)*(byte *)(lVar13 + 0x42);
    if (uVar8 != 1) {
      FUN_0011158f(param_1);
    }
    if (local_e4 != 0) {
      FUN_001207c0(lVar12,0x52,local_e4,1);
    }
    if (local_d8 == 0) {
      iVar5 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = iVar5;
      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);
      if (uVar8 != 0) goto LAB_0017622b;
      FUN_001207c0(lVar12,0x93,local_c4,iVar5);
      FUN_00120a54(lVar13);
      if (lVar16 == 0) {
        local_e8 = 1;
        __s = (void *)0x0;
        local_f0 = uVar8;
LAB_001761b5:
        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);
      }
      else {
        local_e8 = 1;
        __s = (void *)0x0;
        local_f0 = uVar8;
      }
      if (uVar8 != 0) goto LAB_001762b7;
      if (local_d8 == 0) {
        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);
      }
      else {
LAB_00175f34:
        iVar6 = FUN_00120894(lVar12,0x25,local_c8);
        if (*(int *)((long)plVar10 + 0x54) == 0) {
          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);
        }
        else {
          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);
        }
      }
      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;
      local_118 = FUN_0011203f(lVar2,plVar10);
      FUN_0011dfb5(param_1,plVar10);
      FUN_001115a2(param_1);
LAB_001764bf:
      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);
      FUN_0010f49a(lVar12,2);
    }
    else {
      iVar6 = (int)local_e8;
      if (0 < local_e8) {
        lVar15 = 0;
        do {
          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),
                       iVar5 + (int)lVar15);
          lVar15 = lVar15 + 1;
        } while ((ulong)(iVar6 - 1) + 1 != lVar15);
      }
      if (uVar8 == 0) {
        iVar7 = (int)param_1[7] + 1;
        *(int *)(param_1 + 7) = iVar7;
        uVar14 = FUN_001349e4(*param_1,local_d8);
        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);
        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);
        FUN_00120a54(lVar13);
        iVar5 = iVar7;
        if (lVar16 != 0) {
          local_e8 = 0;
          __s = (void *)0x0;
          local_f0 = uVar8;
          goto LAB_00175f34;
        }
        local_e8 = 0;
        __s = (void *)0x0;
        local_f0 = uVar8;
LAB_00176334:
        if (uVar8 != 2) goto LAB_001761b5;
        uVar9 = FUN_0012083c(lVar12,0x11);
        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);
        FUN_0010f508(lVar12,uVar9);
      }
      else {
LAB_0017622b:
        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));
        if (__s == (void *)0x0) {
          FUN_00120a54(lVar13);
          goto LAB_00175a84;
        }
        memset(__s,1,(long)(int)(local_f0 + 1));
        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;
        if (-1 < (int)lVar3) {
          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;
        }
        if (-1 < lVar3) {
          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;
        }
        if (local_c0 != 0) {
          FUN_0011aaa4(lVar12,local_c0);
        }
        local_f0 = *(int *)((long)param_1 + 0x44) - 1;
        *(uint *)((long)param_1 + 0x44) = local_f0;
        if (lVar16 == 0) goto LAB_00176334;
      }
LAB_001762b7:
      if (*(int *)((long)plVar10 + 0x54) != 0) {
LAB_001763f0:
        local_118 = FUN_0011203f(lVar2,plVar10);
        FUN_0011dfb5(param_1,plVar10);
        FUN_001115a2(param_1);
        iVar6 = 0;
        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {
          *(undefined1 *)(param_1 + 4) = 0;
        }
        goto LAB_001764bf;
      }
      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {
        iVar6 = 0;
      }
      else {
        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);
        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;
        iVar6 = 0;
      }
LAB_00175f7d:
      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,
                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);
    }
    if (uVar8 == 0) {
      if (local_d8 == 0) {
        FUN_00120941(lVar12,iVar6);
        FUN_0010f4fb(lVar12,iVar6);
      }
      else {
        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);
        FUN_0010f4fb(lVar12,iVar6);
      }
    }
    else {
      FUN_00120437(lVar12,local_f0);
      FUN_00120a54(lVar13);
    }
  }
  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {
    FUN_001375f3(param_1);
  }
  if (local_e4 != 0) {
    FUN_001207c0(lVar12,0x50,local_e4,1);
    FUN_0011f43e(lVar12,1);
    FUN_00125119(lVar12,0,0,"rows deleted",0);
  }
LAB_00175a84:
  if (local_80 != (long *)0x0) {
    local_80[0x2c] = local_88;
    local_80 = (long *)0x0;
  }
  FUN_0011c238(lVar2,param_2);
  FUN_0011c4af(lVar2,param_3);
  FUN_00119825(lVar2,__s);
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xf8
MOV R13,RSI
MOV R15,RDX
MOV qword ptr [RSP],RCX
MOV qword ptr [RSP + 0x8],R8
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xe8],RAX
XOR EAX,EAX
MOV dword ptr [RSP + 0x98],0x0
MOV dword ptr [RSP + 0x9c],0x0
MOV qword ptr [RSP + 0xa0],0x0
MOV qword ptr [RSP + 0xa8],0x0
MOV RBX,qword ptr [RDI]
MOV R12D,0x0
CMP dword ptr [RDI + 0x30],0x0
JNZ 0x00175a84
MOV RBP,RDI
CMP byte ptr [RBX + 0x61],0x0
JZ 0x00175af6
MOV RAX,qword ptr [RSP + 0xa8]
TEST RAX,RAX
JZ 0x00175aac
MOV RDX,qword ptr [RSP + 0xa0]
MOV qword ptr [RAX + 0x160],RDX
MOV qword ptr [RSP + 0xa8],0x0
MOV RSI,R13
MOV RDI,RBX
CALL 0x0011c238
MOV RSI,R15
MOV RDI,RBX
CALL 0x0011c4af
MOV RSI,R12
MOV RDI,RBX
CALL 0x00119825
MOV RAX,qword ptr [RSP + 0xe8]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x001765a7
ADD RSP,0xf8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x00174d5c
MOV R14,RAX
TEST RAX,RAX
JZ 0x00175a84
MOV R8D,0x0
MOV ECX,0x0
MOV EDX,0x7e
MOV RSI,RAX
MOV RDI,RBP
CALL 0x00111fa0
MOV qword ptr [RSP + 0x10],RAX
MOV RCX,qword ptr [R14 + 0x18]
MOV qword ptr [RSP + 0x20],RCX
MOV dword ptr [RSP + 0x1c],0x1
TEST RAX,RAX
JZ 0x00175fd0
MOV RSI,R14
MOV RDI,RBP
CALL 0x001684fe
MOV R12D,0x0
TEST EAX,EAX
JNZ 0x00175a84
CMP qword ptr [RSP + 0x10],0x0
SETNZ DL
MOVZX EDX,DL
MOV RSI,R14
MOV RDI,RBP
CALL 0x0012e937
MOV dword ptr [RSP + 0x38],EAX
TEST EAX,EAX
JNZ 0x00175a84
MOV RSI,qword ptr [R14 + 0x70]
MOV RDI,RBX
CALL 0x00111b49
MOV dword ptr [RSP + 0x30],EAX
CDQE
SHL RAX,0x5
ADD RAX,qword ptr [RBX + 0x20]
MOV R8,qword ptr [RAX]
MOV ECX,0x0
MOV RDX,qword ptr [R14]
MOV ESI,0x9
MOV RDI,RBP
CALL 0x0012ca50
MOV dword ptr [RSP + 0x40],EAX
CMP EAX,0x1
JZ 0x00175a84
MOV EAX,dword ptr [RBP + 0x34]
MOV dword ptr [RSP + 0x3c],EAX
LEA ECX,[RAX + 0x1]
MOV dword ptr [RSP + 0x48],ECX
MOV dword ptr [RBP + 0x34],ECX
MOV dword ptr [R13 + 0x48],EAX
MOV RAX,qword ptr [R14 + 0x10]
TEST RAX,RAX
JZ 0x00175bee
MOV EDX,dword ptr [RSP + 0x38]
ADD dword ptr [RBP + 0x34],0x1
MOV RAX,qword ptr [RAX + 0x28]
ADD EDX,0x1
TEST RAX,RAX
JNZ 0x00175bda
MOV dword ptr [RSP + 0x38],EDX
CMP qword ptr [RSP + 0x20],0x0
JZ 0x00175c17
MOV RAX,qword ptr [R14]
MOV qword ptr [RSP + 0xa8],RBP
MOV RDX,qword ptr [RBP + 0x160]
MOV qword ptr [RSP + 0xa0],RDX
MOV qword ptr [RBP + 0x160],RAX
MOV RDI,RBP
CALL 0x00121a1e
MOV qword ptr [RSP + 0x28],RAX
MOV R12D,0x0
TEST RAX,RAX
JZ 0x00175a84
CMP byte ptr [RBP + 0x1e],0x0
JZ 0x00175ff6
MOV EDX,dword ptr [RSP + 0x30]
MOV ESI,dword ptr [RSP + 0x1c]
MOV RDI,RBP
CALL 0x00152f68
CMP qword ptr [RSP + 0x20],0x0
JZ 0x00175c84
MOV R12D,dword ptr [RSP + 0x3c]
MOV R9D,R12D
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP]
MOV RDX,R15
MOV RSI,R14
MOV RDI,RBP
CALL 0x00168048
MOV dword ptr [RSP + 0x9c],R12D
MOV dword ptr [RSP + 0x98],R12D
LEA RDI,[RSP + 0xb0]
MOV qword ptr [RSP + 0xc0],0x0
MOV qword ptr [RSP + 0xc8],0x0
MOV qword ptr [RDI + 0x20],0x0
MOV qword ptr [RDI + 0x28],0x0
MOV qword ptr [RDI + 0x30],0x0
MOV qword ptr [RSP + 0xb0],RBP
MOV qword ptr [RSP + 0xb8],R13
MOV RSI,R15
CALL 0x0012ce42
MOV dword ptr [RSP + 0x8],EAX
MOV R12D,0x0
TEST EAX,EAX
JNZ 0x00175a84
MOV dword ptr [RSP + 0x44],EAX
TEST byte ptr [RBX + 0x34],0x1
JZ 0x00175d04
CMP byte ptr [RBP + 0x1e],0x0
JNZ 0x00175d04
CMP qword ptr [RBP + 0xa8],0x0
JZ 0x00176002
TEST R15,R15
SETZ DL
CMP dword ptr [RSP + 0x1c],0x0
SETZ AL
TEST DL,AL
JZ 0x00175d21
CMP dword ptr [RSP + 0x40],0x0
JZ 0x0017602a
MOV EAX,dword ptr [RSP + 0xd8]
AND EAX,0x40
OR EAX,dword ptr [RSP + 0x1c]
SETZ R12B
MOVZX R12D,R12B
SHL R12D,0x3
OR R12W,0x414
TEST byte ptr [R14 + 0x40],0x80
JNZ 0x001760bf
MOV EAX,dword ptr [RBP + 0x38]
ADD EAX,0x1
MOV dword ptr [RSP + 0x64],EAX
MOV dword ptr [RBP + 0x38],EAX
MOV ECX,EAX
MOV EDX,0x0
MOV ESI,0x48
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x68],EAX
MOV dword ptr [RSP + 0x60],EAX
MOV dword ptr [RSP],EAX
MOV word ptr [RSP + 0x40],0x1
MOV qword ptr [RSP + 0x50],0x0
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x50]
PUSH RAX
MOVZX R9D,R12W
MOV R8D,0x0
MOV ECX,0x0
MOV RDX,R15
MOV RSI,R13
MOV RDI,RBP
CALL 0x001620c2
MOV qword ptr [RSP + 0x58],RAX
ADD RSP,0x10
MOV R12D,0x0
TEST RAX,RAX
JZ 0x00175a84
MOV RCX,qword ptr [RAX + 0x28]
MOV qword ptr [RSP + 0x58],RCX
MOVZX EAX,byte ptr [RAX + 0x42]
MOV dword ptr [RSP + 0x1c],EAX
CMP EAX,0x1
JZ 0x00175dea
MOV RDI,RBP
CALL 0x0011158f
CMP dword ptr [RSP + 0x44],0x0
JNZ 0x00176120
MOV RCX,qword ptr [RSP + 0x50]
TEST RCX,RCX
JZ 0x0017613d
MOVZX EDX,word ptr [RSP + 0x40]
MOVSX EAX,DX
MOV dword ptr [RSP + 0x6c],EAX
TEST EAX,EAX
JLE 0x00175e90
LEA EAX,[RAX + -0x1]
ADD RAX,0x1
MOV qword ptr [RSP + 0x30],RAX
MOV R12D,0x0
MOV qword ptr [RSP + 0x70],RBX
MOV RBX,RCX
MOV qword ptr [RSP + 0x78],RBP
MOV EBP,dword ptr [RSP]
MOV qword ptr [RSP + 0x80],R13
MOV R13D,dword ptr [RSP + 0x3c]
MOV qword ptr [RSP + 0x88],R15
MOV R15,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [RBX + 0x8]
MOVSX ECX,word ptr [RAX + R12*0x2]
LEA R8D,[RBP + R12*0x1]
MOV EDX,R13D
MOV RSI,R14
MOV RDI,R15
CALL 0x0015bb5b
ADD R12,0x1
CMP qword ptr [RSP + 0x30],R12
JNZ 0x00175e4f
MOV RBX,qword ptr [RSP + 0x70]
MOV RBP,qword ptr [RSP + 0x78]
MOV R13,qword ptr [RSP + 0x80]
MOV R15,qword ptr [RSP + 0x88]
CMP dword ptr [RSP + 0x1c],0x0
JNZ 0x0017622b
MOV EAX,dword ptr [RBP + 0x38]
LEA R12D,[RAX + 0x1]
MOV dword ptr [RSP + 0x30],R12D
MOV dword ptr [RBP + 0x38],R12D
MOV RSI,qword ptr [RSP + 0x50]
MOV RDI,qword ptr [RBP]
CALL 0x001349e4
MOV R9,RAX
SUB RSP,0x8
MOV EAX,dword ptr [RSP + 0x74]
PUSH RAX
MOV R8D,R12D
MOV dword ptr [RSP + 0x7c],EAX
MOV ECX,EAX
MOV EDX,dword ptr [RSP + 0x10]
MOV ESI,0x5b
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00121136
MOV R9D,dword ptr [RSP + 0x7c]
MOV R8D,dword ptr [RSP + 0x10]
MOV ECX,R12D
MOV EDX,dword ptr [RSP + 0x70]
MOV ESI,0x82
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0012085a
MOV RDI,qword ptr [RSP + 0x58]
CALL 0x00120a54
ADD RSP,0x10
CMP qword ptr [RSP + 0x20],0x0
JZ 0x0017631f
MOV EAX,dword ptr [RSP + 0x1c]
MOV dword ptr [RSP + 0x38],EAX
MOV dword ptr [RSP],R12D
MOV word ptr [RSP + 0x40],0x0
MOV R12D,0x0
MOV EDX,dword ptr [RSP + 0x60]
MOV ESI,0x25
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00120894
MOV dword ptr [RSP + 0x8],EAX
CMP dword ptr [R14 + 0x54],0x0
JZ 0x001763d5
MOV R8D,dword ptr [RSP]
MOV ECX,0x0
MOV EDX,dword ptr [RSP + 0x60]
MOV ESI,0x59
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00120767
CMP dword ptr [R14 + 0x54],0x0
JNZ 0x0017649c
SUB RSP,0x8
MOV RAX,qword ptr [RSP + 0x60]
SAR RAX,0x20
PUSH RAX
MOV EAX,dword ptr [RSP + 0x2c]
PUSH RAX
PUSH 0xb
CMP byte ptr [RBP + 0x1e],0x0
SETZ AL
MOVZX EAX,AL
PUSH RAX
MOVSX EAX,word ptr [RSP + 0x68]
PUSH RAX
MOV R9D,dword ptr [RSP + 0x30]
MOV R8D,dword ptr [RSP + 0xcc]
MOV ECX,dword ptr [RSP + 0xc8]
MOV RDX,qword ptr [RSP + 0x40]
MOV RSI,R14
MOV RDI,RBP
CALL 0x00175683
ADD RSP,0x30
JMP 0x001764fc
MOV ECX,0x0
MOV EDX,0x0
MOV RSI,R14
MOV RDI,RBP
CALL 0x001116f3
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
MOV dword ptr [RSP + 0x1c],EAX
JMP 0x00175b3d
OR byte ptr [RAX + 0xc6],0x10
JMP 0x00175c3d
MOV EAX,dword ptr [RBP + 0x38]
ADD EAX,0x1
MOV dword ptr [RSP + 0x44],EAX
MOV dword ptr [RBP + 0x38],EAX
MOV ECX,EAX
MOV EDX,0x0
MOV ESI,0x45
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
JMP 0x00175d04
CMP dword ptr [R14 + 0x54],0x0
JNZ 0x00175d21
MOV EDX,dword ptr [R14 + 0x38]
MOV R8,qword ptr [R14]
MOV ECX,0x1
MOV R12D,dword ptr [RSP + 0x30]
MOV ESI,R12D
MOV RDI,RBP
CALL 0x0012046c
TEST byte ptr [R14 + 0x40],0x80
JNZ 0x0017608b
MOV EAX,dword ptr [RSP + 0x44]
TEST EAX,EAX
MOV R8D,0xffffffff
CMOVNZ R8D,EAX
MOV EDX,dword ptr [R14 + 0x38]
SUB RSP,0x8
PUSH -0x1
MOV R9,qword ptr [R14]
MOV ECX,R12D
MOV ESI,0x89
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00121136
ADD RSP,0x10
MOV R12,qword ptr [R14 + 0x10]
TEST R12,R12
JZ 0x00176484
MOV EDX,dword ptr [R12 + 0x58]
MOV ECX,dword ptr [RSP + 0x30]
MOV ESI,0x89
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
MOV R12,qword ptr [R12 + 0x28]
TEST R12,R12
JNZ 0x00176098
JMP 0x0017653c
MOV RDI,R14
CALL 0x00111247
MOV qword ptr [RSP + 0x50],RAX
MOVZX ECX,word ptr [RAX + 0x5e]
MOV word ptr [RSP + 0x40],CX
MOV EAX,dword ptr [RBP + 0x38]
LEA EDX,[RAX + 0x1]
MOV dword ptr [RSP],EDX
MOVSX ECX,CX
ADD EAX,ECX
MOV dword ptr [RBP + 0x38],EAX
MOV EDX,dword ptr [RBP + 0x34]
MOV dword ptr [RSP + 0x60],EDX
LEA EAX,[RDX + 0x1]
MOV dword ptr [RBP + 0x34],EAX
MOV ESI,0x64
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
MOV dword ptr [RSP + 0x68],EAX
MOV RSI,qword ptr [RSP + 0x50]
MOV RDI,RBP
CALL 0x0013744b
MOV EAX,dword ptr [RSP + 0x8]
MOV dword ptr [RSP + 0x64],EAX
JMP 0x00175d8e
MOV ECX,0x1
MOV EDX,dword ptr [RSP + 0x44]
MOV ESI,0x52
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
JMP 0x00175df5
MOV EAX,dword ptr [RBP + 0x38]
ADD EAX,0x1
MOV dword ptr [RSP],EAX
MOV dword ptr [RBP + 0x38],EAX
MOV R8D,EAX
MOV ECX,0xffffffff
MOV EDX,dword ptr [RSP + 0x3c]
MOV RSI,R14
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0015bb5b
CMP dword ptr [RSP + 0x1c],0x0
JNZ 0x0017622b
MOV ECX,dword ptr [RSP]
MOV EDX,dword ptr [RSP + 0x64]
MOV ESI,0x93
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x00120a54
CMP qword ptr [RSP + 0x20],0x0
JNZ 0x00176305
MOV EAX,dword ptr [RSP + 0x1c]
MOV dword ptr [RSP + 0x38],EAX
MOV EAX,dword ptr [RSP]
MOV dword ptr [RSP + 0x30],EAX
MOV word ptr [RSP + 0x40],0x1
MOV R12D,0x0
LEA RAX,[RSP + 0x9c]
PUSH RAX
LEA RAX,[RSP + 0xa0]
PUSH RAX
MOV R9,R12
MOV R8D,dword ptr [RSP + 0x4c]
MOV ECX,0x8
MOV EDX,0x61
MOV RSI,R14
MOV RDI,RBP
CALL 0x0013760c
ADD RSP,0x10
MOV EAX,dword ptr [RSP + 0x30]
MOV dword ptr [RSP],EAX
CMP dword ptr [RSP + 0x1c],0x0
JNZ 0x001762b7
CMP qword ptr [RSP + 0x50],0x0
JNZ 0x00175f34
MOV R8D,dword ptr [RSP]
MOV ECX,0x0
MOV EDX,dword ptr [RSP + 0x64]
MOV ESI,0x2a
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00120767
MOV dword ptr [RSP + 0x8],EAX
JMP 0x00175f72
MOV EAX,dword ptr [RSP + 0x38]
LEA ESI,[RAX + 0x2]
MOVSXD RSI,ESI
MOV RDI,RBX
CALL 0x0011efd7
MOV R12,RAX
TEST RAX,RAX
JZ 0x001762e6
MOV EAX,dword ptr [RSP + 0x38]
LEA EDX,[RAX + 0x1]
MOVSXD RDX,EDX
MOV ESI,0x1
MOV RDI,R12
CALL 0x0010c180
MOVSXD RAX,dword ptr [RSP + 0x38]
MOV byte ptr [R12 + RAX*0x1 + 0x1],0x0
MOV RAX,qword ptr [RSP + 0x58]
TEST EAX,EAX
JS 0x0017627f
SUB EAX,dword ptr [RSP + 0x3c]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x0
MOV RAX,qword ptr [RSP + 0x58]
SAR RAX,0x20
TEST EAX,EAX
JS 0x00176297
SUB EAX,dword ptr [RSP + 0x3c]
CDQE
MOV byte ptr [R12 + RAX*0x1],0x0
CMP dword ptr [RSP + 0x68],0x0
JNZ 0x001762f5
MOV EAX,dword ptr [RBP + 0x44]
SUB EAX,0x1
MOV dword ptr [RSP + 0x38],EAX
MOV dword ptr [RBP + 0x44],EAX
CMP qword ptr [RSP + 0x20],0x0
JZ 0x0017639e
MOV ECX,dword ptr [R14 + 0x54]
TEST ECX,ECX
JNZ 0x001763f0
MOV EDX,dword ptr [RSP + 0x98]
MOV EAX,EDX
SUB EAX,dword ptr [RSP + 0x3c]
CDQE
CMP byte ptr [R12 + RAX*0x1],0x0
JNZ 0x001763a7
MOV dword ptr [RSP + 0x8],ECX
JMP 0x00175f7d
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x00120a54
JMP 0x00175a84
MOV ESI,dword ptr [RSP + 0x68]
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0011aaa4
JMP 0x0017629e
MOV EAX,dword ptr [RSP + 0x1c]
MOV dword ptr [RSP + 0x38],EAX
MOV word ptr [RSP + 0x40],0x1
MOV R12D,0x0
JMP 0x001761ef
MOV EAX,dword ptr [RSP + 0x1c]
MOV dword ptr [RSP + 0x38],EAX
MOV word ptr [RSP + 0x40],0x0
MOV R12D,0x0
CMP dword ptr [RSP + 0x1c],0x2
JNZ 0x001761b5
MOV ESI,0x11
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0012083c
MOV dword ptr [RSP],EAX
LEA RAX,[RSP + 0x9c]
PUSH RAX
LEA RAX,[RSP + 0xa0]
PUSH RAX
MOV R9,R12
MOV R8D,dword ptr [RSP + 0x4c]
MOV ECX,0x8
MOV EDX,0x61
MOV RSI,R14
MOV RDI,RBP
CALL 0x0013760c
MOV ESI,dword ptr [RSP + 0x10]
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x0010f508
ADD RSP,0x10
MOV EAX,dword ptr [RSP + 0x30]
MOV dword ptr [RSP],EAX
JMP 0x001762b7
MOV EAX,dword ptr [RSP]
MOV dword ptr [RSP + 0x30],EAX
JMP 0x00176334
MOVSX R9D,word ptr [RSP + 0x40]
MOV R8D,dword ptr [RSP]
MOV ECX,dword ptr [RSP + 0x38]
MOV ESI,0x1d
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0012085a
MOV EAX,dword ptr [R14 + 0x54]
TEST EAX,EAX
JNZ 0x001763f0
MOV dword ptr [RSP + 0x8],EAX
JMP 0x00175f7d
MOV ECX,dword ptr [RSP]
MOV EDX,dword ptr [RSP + 0x60]
MOV ESI,0x7e
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
JMP 0x00175f72
MOV RSI,R14
MOV RDI,RBX
CALL 0x0011203f
MOV qword ptr [RSP + 0x10],RAX
MOV RSI,R14
MOV RDI,RBP
CALL 0x0011dfb5
MOV RDI,RBP
CALL 0x001115a2
CMP dword ptr [RSP + 0x1c],0x1
JNZ 0x001764bf
MOV EDX,dword ptr [RSP + 0x3c]
MOV ESI,0x74
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00120894
CMP qword ptr [RBP + 0xa0],0x0
JNZ 0x001764bf
MOV byte ptr [RBP + 0x20],0x0
JMP 0x001764bf
MOV ESI,dword ptr [RSP + 0x38]
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00120437
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x00120a54
JMP 0x0017653c
MOV ESI,dword ptr [RSP + 0x8]
MOV R14,qword ptr [RSP + 0x28]
MOV RDI,R14
CALL 0x00120941
MOV ESI,dword ptr [RSP + 0x8]
MOV RDI,R14
CALL 0x0010f4fb
JMP 0x0017653c
MOV R12D,0x0
JMP 0x0017653c
MOV RDI,RBP
CALL 0x001375f3
JMP 0x00176550
MOV RSI,R14
MOV RDI,RBX
CALL 0x0011203f
MOV qword ptr [RSP + 0x10],RAX
MOV RSI,R14
MOV RDI,RBP
CALL 0x0011dfb5
MOV RDI,RBP
CALL 0x001115a2
SUB RSP,0x8
PUSH -0xc
MOV R9,qword ptr [RSP + 0x20]
MOV R8D,dword ptr [RSP + 0x10]
MOV ECX,0x1
MOV EDX,0x0
MOV ESI,0xa
MOV R14,qword ptr [RSP + 0x38]
MOV RDI,R14
CALL 0x00121136
MOV ESI,0x2
MOV RDI,R14
CALL 0x0010f49a
ADD RSP,0x10
CMP dword ptr [RSP + 0x1c],0x0
JNZ 0x00176445
CMP qword ptr [RSP + 0x50],0x0
JZ 0x00176462
MOV R14D,dword ptr [RSP + 0x8]
LEA ECX,[R14 + 0x1]
MOV EDX,dword ptr [RSP + 0x60]
MOV ESI,0x5
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001207c0
MOV ESI,R14D
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x0010f4fb
CMP byte ptr [RBP + 0x1e],0x0
JNZ 0x00176550
CMP qword ptr [RBP + 0xa8],0x0
JZ 0x0017648f
CMP dword ptr [RSP + 0x44],0x0
JZ 0x00175a84
MOV ECX,0x1
MOV EDX,dword ptr [RSP + 0x44]
MOV ESI,0x50
MOV R14,qword ptr [RSP + 0x28]
MOV RDI,R14
CALL 0x001207c0
MOV ESI,0x1
MOV RDI,R14
CALL 0x0011f43e
MOV R8D,0x0
LEA RCX,[0x18eee3]
MOV EDX,0x0
MOV ESI,0x0
MOV RDI,R14
CALL 0x00125119
JMP 0x00175a84
CALL 0x0010c0d0
(translation_unit "void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" identifier (parameter_list "(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined8 local_118;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "short local_e8;" (sized_type_specifier "short" short) identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "long local_d8;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_80;" (sized_type_specifier "long" long) (pointer_declarator "*local_80" * identifier) ;) (declaration "long *local_78;" (sized_type_specifier "long" long) (pointer_declarator "*local_78" * identifier) ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" 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_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;" if (parenthesized_expression "((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0))" ( (binary_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" (parenthesized_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0'))" ( (binary_expression "((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')" (parenthesized_expression "((int)param_1[6] != 0)" ( (binary_expression "(int)param_1[6] != 0" (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) != number_literal) )) || (parenthesized_expression "(*(char *)(lVar2 + 0x61) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x61) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x61)" * (cast_expression "(char *)(lVar2 + 0x61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x61)" ( (binary_expression "lVar2 + 0x61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" ( (comma_expression "plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0" (assignment_expression "plVar10 = (long *)FUN_00174d5c()" identifier = (cast_expression "(long *)FUN_00174d5c()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00174d5c()" identifier (argument_list "()" ( ))))) , (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);" (assignment_expression "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0)" identifier = (call_expression "FUN_00111fa0(param_1,plVar10,0x7e,0,0)" identifier (argument_list "(param_1,plVar10,0x7e,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "lVar16 = plVar10[3];" (assignment_expression "lVar16 = plVar10[3]" identifier = (subscript_expression "plVar10[3]" identifier [ number_literal ])) ;) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (if_statement "if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" { (expression_statement "iVar5 = FUN_001116f3(param_1,plVar10,0,0);" (assignment_expression "iVar5 = FUN_001116f3(param_1,plVar10,0,0)" identifier = (call_expression "FUN_001116f3(param_1,plVar10,0,0)" identifier (argument_list "(param_1,plVar10,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "bVar17 = iVar5 != 0;" (assignment_expression "bVar17 = iVar5 != 0" identifier = (binary_expression "iVar5 != 0" identifier != number_literal)) ;) })) (expression_statement "iVar5 = FUN_001684fe(param_1,plVar10);" (assignment_expression "iVar5 = FUN_001684fe(param_1,plVar10)" identifier = (call_expression "FUN_001684fe(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;" if (parenthesized_expression "((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0" (assignment_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0)" identifier = (call_expression "FUN_0012e937(param_1,plVar10,lVar11 != 0)" identifier (argument_list "(param_1,plVar10,lVar11 != 0)" ( identifier , identifier , (binary_expression "lVar11 != 0" identifier != number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);" (assignment_expression "iVar5 = FUN_00111b49(lVar2,plVar10[0xe])" identifier = (call_expression "FUN_00111b49(lVar2,plVar10[0xe])" identifier (argument_list "(lVar2,plVar10[0xe])" ( identifier , (subscript_expression "plVar10[0xe]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));" (assignment_expression "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" identifier = (call_expression "FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" identifier (argument_list "(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" ( identifier , number_literal , (pointer_expression "*plVar10" * identifier) , number_literal , (pointer_expression "*(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" * (cast_expression "(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" ( (binary_expression "(long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)" (binary_expression "(long)iVar5 * 0x20" (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) )))) )))) ;) (if_statement "if (iVar6 == 1) goto LAB_00175a84;" if (parenthesized_expression "(iVar6 == 1)" ( (binary_expression "iVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)((long)param_1 + 0x34);" (assignment_expression "iVar1 = *(int *)((long)param_1 + 0x34)" identifier = (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((long)param_1 + 0x34) = iVar1 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = iVar1 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_2 + 0x48) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x48) = iVar1" (pointer_expression "*(int *)(param_2 + 0x48)" * (cast_expression "(int *)(param_2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar12 = plVar10[2];" (assignment_expression "lVar12 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (if_statement "if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" if (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" { (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);" do (compound_statement "{\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    }" { (expression_statement "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "lVar12 = *(long *)(lVar12 + 0x28);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x28)" identifier = (pointer_expression "*(long *)(lVar12 + 0x28)" * (cast_expression "(long *)(lVar12 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x28)" ( (binary_expression "lVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = local_f0 + 1;" (assignment_expression "local_f0 = local_f0 + 1" identifier = (binary_expression "local_f0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) ;) })) (if_statement "if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" { (expression_statement "local_88 = param_1[0x2c];" (assignment_expression "local_88 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2c] = *plVar10;" (assignment_expression "param_1[0x2c] = *plVar10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" identifier = identifier) ;) })) (expression_statement "lVar12 = FUN_00121a1e(param_1);" (assignment_expression "lVar12 = FUN_00121a1e(param_1)" identifier = (call_expression "FUN_00121a1e(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar12 == 0) goto LAB_00175a84;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (if_statement "if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" if (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" { (expression_statement "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;" (assignment_expression "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" * (cast_expression "(byte *)(lVar12 + 0xc6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc6)" ( (binary_expression "lVar12 + 0xc6" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" * (cast_expression "(byte *)(lVar12 + 0xc6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc6)" ( (binary_expression "lVar12 + 0xc6" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "FUN_00152f68(param_1,bVar17,iVar5);" (call_expression "FUN_00152f68(param_1,bVar17,iVar5)" identifier (argument_list "(param_1,bVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" { (expression_statement "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);" (call_expression "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1)" identifier (argument_list "(param_1,plVar10,param_3,param_4,param_5,iVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_90 = iVar1;" (assignment_expression "local_90 = iVar1" identifier = identifier) ;) (expression_statement "local_8c = iVar1;" (assignment_expression "local_8c = iVar1" identifier = identifier) ;) })) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0012ce42(&local_78,param_3);" (assignment_expression "iVar7 = FUN_0012ce42(&local_78,param_3)" identifier = (call_expression "FUN_0012ce42(&local_78,param_3)" identifier (argument_list "(&local_78,param_3)" ( (pointer_expression "&local_78" & identifier) , identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00175a84;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" if (parenthesized_expression "((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0))" ( (binary_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)" (parenthesized_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0'))" ( (binary_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')" (parenthesized_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x34) & 1)" ( (binary_expression "*(byte *)(lVar2 + 0x34) & 1" (pointer_expression "*(byte *)(lVar2 + 0x34)" * (cast_expression "(byte *)(lVar2 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x34)" ( (binary_expression "lVar2 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x15] == 0)" ( (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" { (expression_statement "local_e4 = (int)param_1[7] + 1;" (assignment_expression "local_e4 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = local_e4;" (assignment_expression "*(int *)(param_1 + 7) = local_e4" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001207c0(lVar12,0x45,0,local_e4);" (call_expression "FUN_001207c0(lVar12,0x45,0,local_e4)" identifier (argument_list "(lVar12,0x45,0,local_e4)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (if_statement "if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" if (parenthesized_expression "(((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))" ( (binary_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0))" ( (binary_expression "(param_3 == 0 && bVar17 == false) && (iVar6 == 0)" (parenthesized_expression "(param_3 == 0 && bVar17 == false)" ( (binary_expression "param_3 == 0 && bVar17 == false" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "bVar17 == false" identifier == false)) )) && (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }" { (expression_statement "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);" (call_expression "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10)" identifier (argument_list "(param_1,iVar5,(int)plVar10[7],1,*plVar10)" ( identifier , identifier , (cast_expression "(int)plVar10[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[7]" identifier [ number_literal ])) , number_literal , (pointer_expression "*plVar10" * identifier) ))) ;) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" if (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" ( (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" * (cast_expression "(byte *)(plVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 8)" ( (binary_expression "plVar10 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (if_statement "if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = local_e4;\n      }" { (expression_statement "iVar6 = local_e4;" (assignment_expression "iVar6 = local_e4" identifier = identifier) ;) })) (expression_statement "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);" (call_expression "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" identifier (argument_list "(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" ( identifier , number_literal , (cast_expression "(int)plVar10[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[7]" identifier [ number_literal ])) , identifier , identifier , (pointer_expression "*plVar10" * identifier) , number_literal ))) ;) })) (expression_statement "lVar16 = plVar10[2];" (assignment_expression "lVar16 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) ;) (if_statement "if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      __s = (void *)0x0;\n    }" { (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" else (compound_statement "{\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" { (do_statement "do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);" do (compound_statement "{\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      }" { (expression_statement "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);" (call_expression "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" identifier (argument_list "(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(lVar16 + 0x58)" * (cast_expression "(undefined4 *)(lVar16 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" identifier = (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" else (compound_statement "{\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" { (expression_statement "uVar4 = local_50 & 0x40;" (assignment_expression "uVar4 = local_50 & 0x40" identifier = (binary_expression "local_50 & 0x40" identifier & number_literal)) ;) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" if (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" ( (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" * (cast_expression "(byte *)(plVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 8)" ( (binary_expression "plVar10 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }" { (expression_statement "local_c4 = (int)param_1[7] + 1;" (assignment_expression "local_c4 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = local_c4;" (assignment_expression "*(int *)(param_1 + 7) = local_c4" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001207c0(lVar12,0x48,0,local_c4);" (call_expression "FUN_001207c0(lVar12,0x48,0,local_c4)" identifier (argument_list "(lVar12,0x48,0,local_c4)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" else (compound_statement "{\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" { (expression_statement "local_d8 = FUN_00111247(plVar10);" (assignment_expression "local_d8 = FUN_00111247(plVar10)" identifier = (call_expression "FUN_00111247(plVar10)" identifier (argument_list "(plVar10)" ( identifier )))) ;) (expression_statement "local_e8 = *(short *)(local_d8 + 0x5e);" (assignment_expression "local_e8 = *(short *)(local_d8 + 0x5e)" identifier = (pointer_expression "*(short *)(local_d8 + 0x5e)" * (cast_expression "(short *)(local_d8 + 0x5e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x5e)" ( (binary_expression "local_d8 + 0x5e" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;" (assignment_expression "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "(int)param_1[7] + (int)local_e8" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_c8 = *(int *)((long)param_1 + 0x34);" (assignment_expression "local_c8 = *(int *)((long)param_1 + 0x34)" identifier = (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((long)param_1 + 0x34) = local_c8 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = local_c8 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (expression_statement "local_c0 = FUN_001207c0(lVar12,100);" (assignment_expression "local_c0 = FUN_001207c0(lVar12,100)" identifier = (call_expression "FUN_001207c0(lVar12,100)" identifier (argument_list "(lVar12,100)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0013744b(param_1,local_d8);" (call_expression "FUN_0013744b(param_1,local_d8)" identifier (argument_list "(param_1,local_d8)" ( identifier , identifier ))) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);" (assignment_expression "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" identifier = (call_expression "FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" identifier (argument_list "(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" ( identifier , identifier , identifier , number_literal , number_literal , (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414" (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3" (call_expression "(ushort)(uVar4 == 0 && bVar17 == false)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar4 == 0 && bVar17 == false)" ( (binary_expression "uVar4 == 0 && bVar17 == false" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "bVar17 == false" identifier == false)) ))) << number_literal) | number_literal) , (binary_expression "iVar1 + 1" identifier + number_literal) )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar13 == 0) goto LAB_00175a84;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar13 + 0x28);" (assignment_expression "lVar3 = *(long *)(lVar13 + 0x28)" identifier = (pointer_expression "*(long *)(lVar13 + 0x28)" * (cast_expression "(long *)(lVar13 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*(byte *)(lVar13 + 0x42);" (assignment_expression "uVar8 = (uint)*(byte *)(lVar13 + 0x42)" identifier = (binary_expression "(uint)*(byte *)(lVar13 + 0x42)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar13 + 0x42)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x42)" ( (binary_expression "lVar13 + 0x42" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      FUN_0011158f(param_1);\n    }" { (expression_statement "FUN_0011158f(param_1);" (call_expression "FUN_0011158f(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" { (expression_statement "FUN_001207c0(lVar12,0x52,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x52,local_e4,1)" identifier (argument_list "(lVar12,0x52,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (if_statement "if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }" { (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = iVar5;" (assignment_expression "*(int *)(param_1 + 7) = iVar5" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5)" identifier (argument_list "(lVar12,plVar10,iVar1,0xffffffff,iVar5)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (uVar8 != 0) goto LAB_0017622b;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017622b;" goto statement_identifier ;)) (expression_statement "FUN_001207c0(lVar12,0x93,local_c4,iVar5);" (call_expression "FUN_001207c0(lVar12,0x93,local_c4,iVar5)" identifier (argument_list "(lVar12,0x93,local_c4,iVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (if_statement "if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" statement_identifier : (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" identifier (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_8c" & identifier) ))) ;)) }) (else_clause "else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" else (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) }))) (if_statement "if (uVar8 != 0) goto LAB_001762b7;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001762b7;" goto statement_identifier ;)) (if_statement "if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }" { (expression_statement "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);" (assignment_expression "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" identifier = (call_expression "FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" identifier (argument_list "(lVar12,0x2a,local_c4,0,iVar5)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) }) (else_clause "else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" else (compound_statement "{\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" { (labeled_statement "LAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);" statement_identifier : (expression_statement "iVar6 = FUN_00120894(lVar12,0x25,local_c8);" (assignment_expression "iVar6 = FUN_00120894(lVar12,0x25,local_c8)" identifier = (call_expression "FUN_00120894(lVar12,0x25,local_c8)" identifier (argument_list "(lVar12,0x25,local_c8)" ( identifier , number_literal , identifier )))) ;)) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }" { (expression_statement "FUN_001207c0(lVar12,0x7e,local_c8,iVar5);" (call_expression "FUN_001207c0(lVar12,0x7e,local_c8,iVar5)" identifier (argument_list "(lVar12,0x7e,local_c8,iVar5)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" else (compound_statement "{\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" { (expression_statement "FUN_00120767(lVar12,0x59,local_c8,0,iVar5);" (call_expression "FUN_00120767(lVar12,0x59,local_c8,0,iVar5)" identifier (argument_list "(lVar12,0x59,local_c8,0,iVar5)" ( identifier , number_literal , identifier , number_literal , identifier ))) ;) }))) }))) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00175f7d;" goto statement_identifier ;)) (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" identifier = (call_expression "FUN_0011203f(lVar2,plVar10)" identifier (argument_list "(lVar2,plVar10)" ( identifier , identifier )))) ;) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier ))) ;) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" statement_identifier : (expression_statement "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" (call_expression "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" identifier (argument_list "(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" ( identifier , number_literal , number_literal , number_literal , identifier , identifier , number_literal ))) ;)) (expression_statement "FUN_0010f49a(lVar12,2);" (call_expression "FUN_0010f49a(lVar12,2)" identifier (argument_list "(lVar12,2)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" else (compound_statement "{\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" { (expression_statement "iVar6 = (int)local_e8;" (assignment_expression "iVar6 = (int)local_e8" identifier = (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" if (parenthesized_expression "(0 < local_e8)" ( (binary_expression "0 < local_e8" number_literal < identifier) )) (compound_statement "{\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" { (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);" do (compound_statement "{\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        }" { (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" identifier (argument_list "(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" ( identifier , identifier , identifier , (cast_expression "(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" * (cast_expression "(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (binary_expression "*(long *)(local_d8 + 8) + lVar15 * 2" (pointer_expression "*(long *)(local_d8 + 8)" * (cast_expression "(long *)(local_d8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 8)" ( (binary_expression "local_d8 + 8" identifier + number_literal) )))) + (binary_expression "lVar15 * 2" identifier * number_literal)) ))))) , (binary_expression "iVar5 + (int)lVar15" identifier + (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)(iVar6 - 1) + 1 != lVar15)" ( (binary_expression "(ulong)(iVar6 - 1) + 1 != lVar15" (binary_expression "(ulong)(iVar6 - 1) + 1" (call_expression "(ulong)(iVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar6 - 1)" ( (binary_expression "iVar6 - 1" identifier - number_literal) ))) + number_literal) != identifier) )) ;) })) (if_statement "if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }" { (expression_statement "iVar7 = (int)param_1[7] + 1;" (assignment_expression "iVar7 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = iVar7;" (assignment_expression "*(int *)(param_1 + 7) = iVar7" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_001349e4(*param_1,local_d8);" (assignment_expression "uVar14 = FUN_001349e4(*param_1,local_d8)" identifier = (call_expression "FUN_001349e4(*param_1,local_d8)" identifier (argument_list "(*param_1,local_d8)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);" (call_expression "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" identifier (argument_list "(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);" (call_expression "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" identifier (argument_list "(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (expression_statement "iVar5 = iVar7;" (assignment_expression "iVar5 = iVar7" identifier = identifier) ;) (if_statement "if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (goto_statement "goto LAB_00175f34;" goto statement_identifier ;) })) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;" statement_identifier : (if_statement "if (uVar8 != 2) goto LAB_001761b5;" if (parenthesized_expression "(uVar8 != 2)" ( (binary_expression "uVar8 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001761b5;" goto statement_identifier ;))) (expression_statement "uVar9 = FUN_0012083c(lVar12,0x11);" (assignment_expression "uVar9 = FUN_0012083c(lVar12,0x11)" identifier = (call_expression "FUN_0012083c(lVar12,0x11)" identifier (argument_list "(lVar12,0x11)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" identifier (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_8c" & identifier) ))) ;) (expression_statement "FUN_0010f508(lVar12,uVar9);" (call_expression "FUN_0010f508(lVar12,uVar9)" identifier (argument_list "(lVar12,uVar9)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" else (compound_statement "{\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" { (labeled_statement "LAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" statement_identifier : (expression_statement "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" (assignment_expression "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" identifier = (cast_expression "(void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" identifier (argument_list "(lVar2,(long)(int)(local_f0 + 2))" ( identifier , (cast_expression "(long)(int)(local_f0 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 2)" ( (binary_expression "local_f0 + 2" identifier + number_literal) )))) ))))) ;)) (if_statement "if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" if (parenthesized_expression "(__s == (void *)0x0)" ( (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" { (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;) })) (expression_statement "memset(__s,1,(long)(int)(local_f0 + 1));" (call_expression "memset(__s,1,(long)(int)(local_f0 + 1))" identifier (argument_list "(__s,1,(long)(int)(local_f0 + 1))" ( identifier , number_literal , (cast_expression "(long)(int)(local_f0 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 1)" ( (binary_expression "local_f0 + 1" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" * (cast_expression "(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(int)local_f0 + 1)" ( (binary_expression "(long)__s + (long)(int)local_f0 + 1" (binary_expression "(long)__s + (long)(int)local_f0" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(int)local_f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" if (parenthesized_expression "(-1 < (int)lVar3)" ( (binary_expression "-1 < (int)lVar3" number_literal < (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" { (expression_statement "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" * (cast_expression "(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)((int)lVar3 - iVar1))" ( (binary_expression "(long)__s + (long)((int)lVar3 - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)((int)lVar3 - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((int)lVar3 - iVar1)" ( (binary_expression "(int)lVar3 - iVar1" (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )))) = number_literal) ;) })) (if_statement "if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" if (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" { (expression_statement "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" * (cast_expression "(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" ( (binary_expression "(long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)((int)((ulong)lVar3 >> 0x20) - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((int)((ulong)lVar3 >> 0x20) - iVar1)" ( (binary_expression "(int)((ulong)lVar3 >> 0x20) - iVar1" (cast_expression "(int)((ulong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)lVar3 >> 0x20)" ( (binary_expression "(ulong)lVar3 >> 0x20" (cast_expression "(ulong)lVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) - identifier) )))) )))) = number_literal) ;) })) (if_statement "if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }" if (parenthesized_expression "(local_c0 != 0)" ( (binary_expression "local_c0 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0011aaa4(lVar12,local_c0);\n        }" { (expression_statement "FUN_0011aaa4(lVar12,local_c0);" (call_expression "FUN_0011aaa4(lVar12,local_c0)" identifier (argument_list "(lVar12,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "local_f0 = *(int *)((long)param_1 + 0x44) - 1;" (assignment_expression "local_f0 = *(int *)((long)param_1 + 0x44) - 1" identifier = (binary_expression "*(int *)((long)param_1 + 0x44) - 1" (pointer_expression "*(int *)((long)param_1 + 0x44)" * (cast_expression "(int *)((long)param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) - number_literal)) ;) (expression_statement "*(uint *)((long)param_1 + 0x44) = local_f0;" (assignment_expression "*(uint *)((long)param_1 + 0x44) = local_f0" (pointer_expression "*(uint *)((long)param_1 + 0x44)" * (cast_expression "(uint *)((long)param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (lVar16 == 0) goto LAB_00176334;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00176334;" goto statement_identifier ;)) }))) (labeled_statement "LAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" statement_identifier : (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" { (labeled_statement "LAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);" statement_identifier : (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" identifier = (call_expression "FUN_0011203f(lVar2,plVar10)" identifier (argument_list "(lVar2,plVar10)" ( identifier , identifier )))) ;)) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier ))) ;) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" if (parenthesized_expression "((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0))" ( (binary_expression "(uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" ( (comma_expression "FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0" (call_expression "FUN_00120894(lVar12,0x74,iVar1)" identifier (argument_list "(lVar12,0x74,iVar1)" ( identifier , number_literal , identifier ))) , (binary_expression "param_1[0x14] == 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_001764bf;" goto statement_identifier ;) }))) (if_statement "if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0')" ( (binary_expression "*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0'" (pointer_expression "*(char *)((long)__s + (long)(local_90 - iVar1))" * (cast_expression "(char *)((long)__s + (long)(local_90 - iVar1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(local_90 - iVar1))" ( (binary_expression "(long)__s + (long)(local_90 - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(local_90 - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_90 - iVar1)" ( (binary_expression "local_90 - iVar1" identifier - identifier) )))) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" { (expression_statement "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);" (call_expression "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" identifier (argument_list "(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" ( identifier , number_literal , identifier , identifier , identifier , (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001763f0;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" statement_identifier : (expression_statement "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" (call_expression "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" identifier (argument_list "(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" ( identifier , identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) , number_literal , identifier , (binary_expression "lVar3 >> 0x20" identifier >> number_literal) ))) ;)) }))) (if_statement "if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }" { (if_statement "if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" { (expression_statement "FUN_00120941(lVar12,iVar6);" (call_expression "FUN_00120941(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" else (compound_statement "{\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" { (expression_statement "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);" (call_expression "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1)" identifier (argument_list "(lVar12,5,local_c8,iVar6 + 1)" ( identifier , number_literal , identifier , (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" else (compound_statement "{\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" { (expression_statement "FUN_00120437(lVar12,local_f0);" (call_expression "FUN_00120437(lVar12,local_f0)" identifier (argument_list "(lVar12,local_f0)" ( identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) }))) }))) (if_statement "if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }" if (parenthesized_expression "((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0))" ( (binary_expression "(*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)" (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x15] == 0)" ( (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    FUN_001375f3(param_1);\n  }" { (expression_statement "FUN_001375f3(param_1);" (call_expression "FUN_001375f3(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" { (expression_statement "FUN_001207c0(lVar12,0x50,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x50,local_e4,1)" identifier (argument_list "(lVar12,0x50,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "FUN_0011f43e(lVar12,1);" (call_expression "FUN_0011f43e(lVar12,1)" identifier (argument_list "(lVar12,1)" ( identifier , number_literal ))) ;) (expression_statement "FUN_00125119(lVar12,0,0,"rows deleted",0);" (call_expression "FUN_00125119(lVar12,0,0,"rows deleted",0)" identifier (argument_list "(lVar12,0,0,"rows deleted",0)" ( identifier , number_literal , number_literal , (string_literal ""rows deleted"" " string_content ") , number_literal ))) ;) })) (labeled_statement "LAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" statement_identifier : (if_statement "if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" if (parenthesized_expression "(local_80 != (long *)0x0)" ( (binary_expression "local_80 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" { (expression_statement "local_80[0x2c] = local_88;" (assignment_expression "local_80[0x2c] = local_88" (subscript_expression "local_80[0x2c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "FUN_0011c238(lVar2,param_2);" (call_expression "FUN_0011c238(lVar2,param_2)" identifier (argument_list "(lVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "FUN_0011c4af(lVar2,param_3);" (call_expression "FUN_0011c4af(lVar2,param_3)" identifier (argument_list "(lVar2,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_00119825(lVar2,__s);" (call_expression "FUN_00119825(lVar2,__s)" identifier (argument_list "(lVar2,__s)" ( identifier , identifier ))) ;) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void sqlite3DeleteFrom(Parse *pParse,SrcList *pTabList,Expr *pWhere,ExprList *pOrderBy,Expr *pLimit)\n\n{\n  byte eMode;\n  int iCur;\n  long lVar1;\n  sqlite3 *db;\n  Select *pSVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  Table *pTab;\n  Trigger *pTrigger;\n  Index *pIVar9;\n  Vdbe *p;\n  WhereInfo *pWInfo;\n  char *zP4;\n  u8 *aToOpen;\n  long lVar10;\n  long in_FS_OFFSET;\n  int local_128;\n  VTable *local_118;\n  uint local_10c;\n  uint local_f0;\n  u16 local_e8;\n  int local_e4;\n  Index *local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int iDataCur;\n  int iIdxCur;\n  AuthContext sContext;\n  NameContext sNC;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iDataCur = 0;\n  iIdxCur = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  db = pParse->db;\n  aToOpen = (u8 *)0x0;\n  if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)) goto LAB_00175a84;\n  pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0);\n  pSVar2 = pTab->pSelect;\n  local_10c = 1;\n  if (pTrigger == (Trigger *)0x0) {\n    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);\n    local_10c = (uint)(iVar5 != 0);\n  }\n  iVar5 = sqlite3ViewGetColumnNames(pParse,pTab);\n  aToOpen = (u8 *)0x0;\n  if ((iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema);\n  iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName);\n  if (iVar6 == 1) goto LAB_00175a84;\n  iCur = pParse->nTab;\n  pParse->nTab = iCur + 1;\n  pTabList->a[0].iCursor = iCur;\n  pIVar9 = pTab->pIndex;\n  local_f0 = 0;\n  if (pIVar9 != (Index *)0x0) {\n    local_f0 = 0;\n    do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);\n  }\n  if (pSVar2 != (Select *)0x0) {\n    sContext.zAuthContext = pParse->zAuthContext;\n    pParse->zAuthContext = pTab->zName;\n    sContext.pParse = pParse;\n  }\n  p = sqlite3GetVdbe(pParse);\n  aToOpen = (u8 *)0x0;\n  if (p == (Vdbe *)0x0) goto LAB_00175a84;\n  if (pParse->nested == '\0') {\n    p->field_0xc6 = p->field_0xc6 | 0x10;\n  }\n  sqlite3BeginWriteOperation(pParse,local_10c,iVar5);\n  if (pSVar2 != (Select *)0x0) {\n    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);\n    iDataCur = iCur;\n    iIdxCur = iCur;\n  }\n  sNC.uNC.pEList = (ExprList *)0x0;\n  sNC.pNext = (NameContext *)0x0;\n  sNC.nRef = 0;\n  sNC.nErr = 0;\n  sNC.ncFlags = 0;\n  sNC._44_4_ = 0;\n  sNC.pWinSelect = (Select *)0x0;\n  sNC.pParse = pParse;\n  sNC.pSrcList = pTabList;\n  iVar7 = sqlite3ResolveExprNames(&sNC,pWhere);\n  aToOpen = (u8 *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0)) {\n    local_e4 = pParse->nMem + 1;\n    pParse->nMem = local_e4;\n    sqlite3VdbeAddOp2(p,0x45,0,local_e4);\n  }\n  if (((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)) {\n    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);\n    if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }\n    pIVar9 = pTab->pIndex;\n    if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }\n  }\n  else {\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }\n  if ((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) {\n    sqlite3AutoincrementEnd(pParse);\n  }\n  if (local_e4 != 0) {\n    sqlite3VdbeAddOp2(p,0x50,local_e4,1);\n    sqlite3VdbeSetNumCols(p,1);\n    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);\n  }\nLAB_00175a84:\n  if (sContext.pParse != (Parse *)0x0) {\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }\n  sqlite3SrcListDelete(db,pTabList);\n  sqlite3ExprDelete(db,pWhere);\n  sqlite3DbFree(db,aToOpen);\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void sqlite3DeleteFrom(Parse *pParse,SrcList *pTabList,Expr *pWhere,ExprList *pOrderBy,Expr *pLimit)\n\n{\n  byte eMode;\n  int iCur;\n  long lVar1;\n  sqlite3 *db;\n  Select *pSVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  Table *pTab;\n  Trigger *pTrigger;\n  Index *pIVar9;\n  Vdbe *p;\n  WhereInfo *pWInfo;\n  char *zP4;\n  u8 *aToOpen;\n  long lVar10;\n  long in_FS_OFFSET;\n  int local_128;\n  VTable *local_118;\n  uint local_10c;\n  uint local_f0;\n  u16 local_e8;\n  int local_e4;\n  Index *local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int iDataCur;\n  int iIdxCur;\n  AuthContext sContext;\n  NameContext sNC;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iDataCur = 0;\n  iIdxCur = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  db = pParse->db;\n  aToOpen = (u8 *)0x0;\n  if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)) goto LAB_00175a84;\n  pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0);\n  pSVar2 = pTab->pSelect;\n  local_10c = 1;\n  if (pTrigger == (Trigger *)0x0) {\n    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);\n    local_10c = (uint)(iVar5 != 0);\n  }\n  iVar5 = sqlite3ViewGetColumnNames(pParse,pTab);\n  aToOpen = (u8 *)0x0;\n  if ((iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema);\n  iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName);\n  if (iVar6 == 1) goto LAB_00175a84;\n  iCur = pParse->nTab;\n  pParse->nTab = iCur + 1;\n  pTabList->a[0].iCursor = iCur;\n  pIVar9 = pTab->pIndex;\n  local_f0 = 0;\n  if (pIVar9 != (Index *)0x0) {\n    local_f0 = 0;\n    do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);\n  }\n  if (pSVar2 != (Select *)0x0) {\n    sContext.zAuthContext = pParse->zAuthContext;\n    pParse->zAuthContext = pTab->zName;\n    sContext.pParse = pParse;\n  }\n  p = sqlite3GetVdbe(pParse);\n  aToOpen = (u8 *)0x0;\n  if (p == (Vdbe *)0x0) goto LAB_00175a84;\n  if (pParse->nested == '\0') {\n    p->field_0xc6 = p->field_0xc6 | 0x10;\n  }\n  sqlite3BeginWriteOperation(pParse,local_10c,iVar5);\n  if (pSVar2 != (Select *)0x0) {\n    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);\n    iDataCur = iCur;\n    iIdxCur = iCur;\n  }\n  sNC.uNC.pEList = (ExprList *)0x0;\n  sNC.pNext = (NameContext *)0x0;\n  sNC.nRef = 0;\n  sNC.nErr = 0;\n  sNC.ncFlags = 0;\n  sNC._44_4_ = 0;\n  sNC.pWinSelect = (Select *)0x0;\n  sNC.pParse = pParse;\n  sNC.pSrcList = pTabList;\n  iVar7 = sqlite3ResolveExprNames(&sNC,pWhere);\n  aToOpen = (u8 *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0)) {\n    local_e4 = pParse->nMem + 1;\n    pParse->nMem = local_e4;\n    sqlite3VdbeAddOp2(p,0x45,0,local_e4);\n  }\n  if (((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)) {\n    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);\n    if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }\n    pIVar9 = pTab->pIndex;\n    if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }\n  }\n  else {\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }\n  if ((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) {\n    sqlite3AutoincrementEnd(pParse);\n  }\n  if (local_e4 != 0) {\n    sqlite3VdbeAddOp2(p,0x50,local_e4,1);\n    sqlite3VdbeSetNumCols(p,1);\n    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);\n  }\nLAB_00175a84:\n  if (sContext.pParse != (Parse *)0x0) {\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }\n  sqlite3SrcListDelete(db,pTabList);\n  sqlite3ExprDelete(db,pWhere);\n  sqlite3DbFree(db,aToOpen);\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "sqlite3DeleteFrom(Parse *pParse,SrcList *pTabList,Expr *pWhere,ExprList *pOrderBy,Expr *pLimit)" identifier (parameter_list "(Parse *pParse,SrcList *pTabList,Expr *pWhere,ExprList *pOrderBy,Expr *pLimit)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "SrcList *pTabList" type_identifier (pointer_declarator "*pTabList" * identifier)) , (parameter_declaration "Expr *pWhere" type_identifier (pointer_declarator "*pWhere" * identifier)) , (parameter_declaration "ExprList *pOrderBy" type_identifier (pointer_declarator "*pOrderBy" * identifier)) , (parameter_declaration "Expr *pLimit" type_identifier (pointer_declarator "*pLimit" * identifier)) ))) (compound_statement "{\n  byte eMode;\n  int iCur;\n  long lVar1;\n  sqlite3 *db;\n  Select *pSVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  Table *pTab;\n  Trigger *pTrigger;\n  Index *pIVar9;\n  Vdbe *p;\n  WhereInfo *pWInfo;\n  char *zP4;\n  u8 *aToOpen;\n  long lVar10;\n  long in_FS_OFFSET;\n  int local_128;\n  VTable *local_118;\n  uint local_10c;\n  uint local_f0;\n  u16 local_e8;\n  int local_e4;\n  Index *local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int iDataCur;\n  int iIdxCur;\n  AuthContext sContext;\n  NameContext sNC;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  iDataCur = 0;\n  iIdxCur = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  db = pParse->db;\n  aToOpen = (u8 *)0x0;\n  if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)) goto LAB_00175a84;\n  pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0);\n  pSVar2 = pTab->pSelect;\n  local_10c = 1;\n  if (pTrigger == (Trigger *)0x0) {\n    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);\n    local_10c = (uint)(iVar5 != 0);\n  }\n  iVar5 = sqlite3ViewGetColumnNames(pParse,pTab);\n  aToOpen = (u8 *)0x0;\n  if ((iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema);\n  iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName);\n  if (iVar6 == 1) goto LAB_00175a84;\n  iCur = pParse->nTab;\n  pParse->nTab = iCur + 1;\n  pTabList->a[0].iCursor = iCur;\n  pIVar9 = pTab->pIndex;\n  local_f0 = 0;\n  if (pIVar9 != (Index *)0x0) {\n    local_f0 = 0;\n    do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);\n  }\n  if (pSVar2 != (Select *)0x0) {\n    sContext.zAuthContext = pParse->zAuthContext;\n    pParse->zAuthContext = pTab->zName;\n    sContext.pParse = pParse;\n  }\n  p = sqlite3GetVdbe(pParse);\n  aToOpen = (u8 *)0x0;\n  if (p == (Vdbe *)0x0) goto LAB_00175a84;\n  if (pParse->nested == '\0') {\n    p->field_0xc6 = p->field_0xc6 | 0x10;\n  }\n  sqlite3BeginWriteOperation(pParse,local_10c,iVar5);\n  if (pSVar2 != (Select *)0x0) {\n    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);\n    iDataCur = iCur;\n    iIdxCur = iCur;\n  }\n  sNC.uNC.pEList = (ExprList *)0x0;\n  sNC.pNext = (NameContext *)0x0;\n  sNC.nRef = 0;\n  sNC.nErr = 0;\n  sNC.ncFlags = 0;\n  sNC._44_4_ = 0;\n  sNC.pWinSelect = (Select *)0x0;\n  sNC.pParse = pParse;\n  sNC.pSrcList = pTabList;\n  iVar7 = sqlite3ResolveExprNames(&sNC,pWhere);\n  aToOpen = (u8 *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0)) {\n    local_e4 = pParse->nMem + 1;\n    pParse->nMem = local_e4;\n    sqlite3VdbeAddOp2(p,0x45,0,local_e4);\n  }\n  if (((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)) {\n    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);\n    if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }\n    pIVar9 = pTab->pIndex;\n    if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }\n  }\n  else {\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }\n  if ((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) {\n    sqlite3AutoincrementEnd(pParse);\n  }\n  if (local_e4 != 0) {\n    sqlite3VdbeAddOp2(p,0x50,local_e4,1);\n    sqlite3VdbeSetNumCols(p,1);\n    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);\n  }\nLAB_00175a84:\n  if (sContext.pParse != (Parse *)0x0) {\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }\n  sqlite3SrcListDelete(db,pTabList);\n  sqlite3ExprDelete(db,pWhere);\n  sqlite3DbFree(db,aToOpen);\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "byte eMode;" type_identifier identifier ;) (declaration "int iCur;" primitive_type identifier ;) (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "Select *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "Table *pTab;" type_identifier (pointer_declarator "*pTab" * identifier) ;) (declaration "Trigger *pTrigger;" type_identifier (pointer_declarator "*pTrigger" * identifier) ;) (declaration "Index *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "Vdbe *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "WhereInfo *pWInfo;" type_identifier (pointer_declarator "*pWInfo" * identifier) ;) (declaration "char *zP4;" primitive_type (pointer_declarator "*zP4" * identifier) ;) (declaration "u8 *aToOpen;" type_identifier (pointer_declarator "*aToOpen" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_128;" primitive_type identifier ;) (declaration "VTable *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "uint local_10c;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "u16 local_e8;" type_identifier identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "Index *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int iDataCur;" primitive_type identifier ;) (declaration "int iIdxCur;" primitive_type identifier ;) (declaration "AuthContext sContext;" type_identifier identifier ;) (declaration "NameContext sNC;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iDataCur = 0;" (assignment_expression "iDataCur = 0" identifier = number_literal) ;) (expression_statement "iIdxCur = 0;" (assignment_expression "iIdxCur = 0" identifier = number_literal) ;) (expression_statement "sContext.zAuthContext = (char *)0x0;" (assignment_expression "sContext.zAuthContext = (char *)0x0" (field_expression "sContext.zAuthContext" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sContext.pParse = (Parse *)0x0;" (assignment_expression "sContext.pParse = (Parse *)0x0" (field_expression "sContext.pParse" identifier . field_identifier) = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "db = pParse->db;" (assignment_expression "db = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)) goto LAB_00175a84;" if (parenthesized_expression "(((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0))" ( (binary_expression "((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||\n     (pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)" (parenthesized_expression "((pParse->nErr != 0) || (db->mallocFailed != '\0'))" ( (binary_expression "(pParse->nErr != 0) || (db->mallocFailed != '\0')" (parenthesized_expression "(pParse->nErr != 0)" ( (binary_expression "pParse->nErr != 0" (field_expression "pParse->nErr" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(db->mallocFailed != '\0')" ( (binary_expression "db->mallocFailed != '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0)" ( (comma_expression "pTab = sqlite3SrcListLookup(pParse,pTabList), pTab == (Table *)0x0" (assignment_expression "pTab = sqlite3SrcListLookup(pParse,pTabList)" identifier = (call_expression "sqlite3SrcListLookup(pParse,pTabList)" identifier (argument_list "(pParse,pTabList)" ( identifier , identifier )))) , (binary_expression "pTab == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0);" (assignment_expression "pTrigger = sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0)" identifier = (call_expression "sqlite3TriggersExist(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0)" identifier (argument_list "(pParse,pTab,0x7e,(ExprList *)0x0,(int *)0x0)" ( identifier , identifier , number_literal , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pSVar2 = pTab->pSelect;" (assignment_expression "pSVar2 = pTab->pSelect" identifier = (field_expression "pTab->pSelect" identifier -> field_identifier)) ;) (expression_statement "local_10c = 1;" (assignment_expression "local_10c = 1" identifier = number_literal) ;) (if_statement "if (pTrigger == (Trigger *)0x0) {\n    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);\n    local_10c = (uint)(iVar5 != 0);\n  }" if (parenthesized_expression "(pTrigger == (Trigger *)0x0)" ( (binary_expression "pTrigger == (Trigger *)0x0" identifier == (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);\n    local_10c = (uint)(iVar5 != 0);\n  }" { (expression_statement "iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0);" (assignment_expression "iVar5 = sqlite3FkRequired(pParse,pTab,(int *)0x0,0)" identifier = (call_expression "sqlite3FkRequired(pParse,pTab,(int *)0x0,0)" identifier (argument_list "(pParse,pTab,(int *)0x0,0)" ( identifier , identifier , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (expression_statement "local_10c = (uint)(iVar5 != 0);" (assignment_expression "local_10c = (uint)(iVar5 != 0)" identifier = (call_expression "(uint)(iVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )))) ;) })) (expression_statement "iVar5 = sqlite3ViewGetColumnNames(pParse,pTab);" (assignment_expression "iVar5 = sqlite3ViewGetColumnNames(pParse,pTab)" identifier = (call_expression "sqlite3ViewGetColumnNames(pParse,pTab)" identifier (argument_list "(pParse,pTab)" ( identifier , identifier )))) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))\n  goto LAB_00175a84;" if (parenthesized_expression "((iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) ||\n     (iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0)" ( (comma_expression "iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0)), iVar5 != 0" (assignment_expression "iVar5 = sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0))" identifier = (call_expression "sqlite3IsReadOnly(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0))" identifier (argument_list "(pParse,pTab,(uint)(pTrigger != (Trigger *)0x0))" ( identifier , identifier , (call_expression "(uint)(pTrigger != (Trigger *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pTrigger != (Trigger *)0x0)" ( (binary_expression "pTrigger != (Trigger *)0x0" identifier != (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema);" (assignment_expression "iVar5 = sqlite3SchemaToIndex(db,pTab->pSchema)" identifier = (call_expression "sqlite3SchemaToIndex(db,pTab->pSchema)" identifier (argument_list "(db,pTab->pSchema)" ( identifier , (field_expression "pTab->pSchema" identifier -> field_identifier) )))) ;) (expression_statement "iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName);" (assignment_expression "iVar6 = sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName)" identifier = (call_expression "sqlite3AuthCheck(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName)" identifier (argument_list "(pParse,9,pTab->zName,(char *)0x0,db->aDb[iVar5].zDbSName)" ( identifier , number_literal , (field_expression "pTab->zName" identifier -> field_identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (field_expression "db->aDb[iVar5].zDbSName" (subscript_expression "db->aDb[iVar5]" (field_expression "db->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier) )))) ;) (if_statement "if (iVar6 == 1) goto LAB_00175a84;" if (parenthesized_expression "(iVar6 == 1)" ( (binary_expression "iVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iCur = pParse->nTab;" (assignment_expression "iCur = pParse->nTab" identifier = (field_expression "pParse->nTab" identifier -> field_identifier)) ;) (expression_statement "pParse->nTab = iCur + 1;" (assignment_expression "pParse->nTab = iCur + 1" (field_expression "pParse->nTab" identifier -> field_identifier) = (binary_expression "iCur + 1" identifier + number_literal)) ;) (expression_statement "pTabList->a[0].iCursor = iCur;" (assignment_expression "pTabList->a[0].iCursor = iCur" (field_expression "pTabList->a[0].iCursor" (subscript_expression "pTabList->a[0]" (field_expression "pTabList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pIVar9 = pTab->pIndex;" (assignment_expression "pIVar9 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (if_statement "if (pIVar9 != (Index *)0x0) {\n    local_f0 = 0;\n    do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);\n  }" if (parenthesized_expression "(pIVar9 != (Index *)0x0)" ( (binary_expression "pIVar9 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_f0 = 0;\n    do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);\n  }" { (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (do_statement "do {\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    } while (pIVar9 != (Index *)0x0);" do (compound_statement "{\n      pParse->nTab = pParse->nTab + 1;\n      pIVar9 = pIVar9->pNext;\n      local_f0 = local_f0 + 1;\n    }" { (expression_statement "pParse->nTab = pParse->nTab + 1;" (assignment_expression "pParse->nTab = pParse->nTab + 1" (field_expression "pParse->nTab" identifier -> field_identifier) = (binary_expression "pParse->nTab + 1" (field_expression "pParse->nTab" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pIVar9 = pIVar9->pNext;" (assignment_expression "pIVar9 = pIVar9->pNext" identifier = (field_expression "pIVar9->pNext" identifier -> field_identifier)) ;) (expression_statement "local_f0 = local_f0 + 1;" (assignment_expression "local_f0 = local_f0 + 1" identifier = (binary_expression "local_f0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar9 != (Index *)0x0)" ( (binary_expression "pIVar9 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (pSVar2 != (Select *)0x0) {\n    sContext.zAuthContext = pParse->zAuthContext;\n    pParse->zAuthContext = pTab->zName;\n    sContext.pParse = pParse;\n  }" if (parenthesized_expression "(pSVar2 != (Select *)0x0)" ( (binary_expression "pSVar2 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sContext.zAuthContext = pParse->zAuthContext;\n    pParse->zAuthContext = pTab->zName;\n    sContext.pParse = pParse;\n  }" { (expression_statement "sContext.zAuthContext = pParse->zAuthContext;" (assignment_expression "sContext.zAuthContext = pParse->zAuthContext" (field_expression "sContext.zAuthContext" identifier . field_identifier) = (field_expression "pParse->zAuthContext" identifier -> field_identifier)) ;) (expression_statement "pParse->zAuthContext = pTab->zName;" (assignment_expression "pParse->zAuthContext = pTab->zName" (field_expression "pParse->zAuthContext" identifier -> field_identifier) = (field_expression "pTab->zName" identifier -> field_identifier)) ;) (expression_statement "sContext.pParse = pParse;" (assignment_expression "sContext.pParse = pParse" (field_expression "sContext.pParse" identifier . field_identifier) = identifier) ;) })) (expression_statement "p = sqlite3GetVdbe(pParse);" (assignment_expression "p = sqlite3GetVdbe(pParse)" identifier = (call_expression "sqlite3GetVdbe(pParse)" identifier (argument_list "(pParse)" ( identifier )))) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (p == (Vdbe *)0x0) goto LAB_00175a84;" if (parenthesized_expression "(p == (Vdbe *)0x0)" ( (binary_expression "p == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (if_statement "if (pParse->nested == '\0') {\n    p->field_0xc6 = p->field_0xc6 | 0x10;\n  }" if (parenthesized_expression "(pParse->nested == '\0')" ( (binary_expression "pParse->nested == '\0'" (field_expression "pParse->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    p->field_0xc6 = p->field_0xc6 | 0x10;\n  }" { (expression_statement "p->field_0xc6 = p->field_0xc6 | 0x10;" (assignment_expression "p->field_0xc6 = p->field_0xc6 | 0x10" (field_expression "p->field_0xc6" identifier -> field_identifier) = (binary_expression "p->field_0xc6 | 0x10" (field_expression "p->field_0xc6" identifier -> field_identifier) | number_literal)) ;) })) (expression_statement "sqlite3BeginWriteOperation(pParse,local_10c,iVar5);" (call_expression "sqlite3BeginWriteOperation(pParse,local_10c,iVar5)" identifier (argument_list "(pParse,local_10c,iVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pSVar2 != (Select *)0x0) {\n    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);\n    iDataCur = iCur;\n    iIdxCur = iCur;\n  }" if (parenthesized_expression "(pSVar2 != (Select *)0x0)" ( (binary_expression "pSVar2 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);\n    iDataCur = iCur;\n    iIdxCur = iCur;\n  }" { (expression_statement "sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur);" (call_expression "sqlite3MaterializeView(pParse,pTab,pWhere,pOrderBy,pLimit,iCur)" identifier (argument_list "(pParse,pTab,pWhere,pOrderBy,pLimit,iCur)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iDataCur = iCur;" (assignment_expression "iDataCur = iCur" identifier = identifier) ;) (expression_statement "iIdxCur = iCur;" (assignment_expression "iIdxCur = iCur" identifier = identifier) ;) })) (expression_statement "sNC.uNC.pEList = (ExprList *)0x0;" (assignment_expression "sNC.uNC.pEList = (ExprList *)0x0" (field_expression "sNC.uNC.pEList" (field_expression "sNC.uNC" identifier . field_identifier) . field_identifier) = (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sNC.pNext = (NameContext *)0x0;" (assignment_expression "sNC.pNext = (NameContext *)0x0" (field_expression "sNC.pNext" identifier . field_identifier) = (cast_expression "(NameContext *)0x0" ( (type_descriptor "NameContext *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sNC.nRef = 0;" (assignment_expression "sNC.nRef = 0" (field_expression "sNC.nRef" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC.nErr = 0;" (assignment_expression "sNC.nErr = 0" (field_expression "sNC.nErr" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC.ncFlags = 0;" (assignment_expression "sNC.ncFlags = 0" (field_expression "sNC.ncFlags" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC._44_4_ = 0;" (assignment_expression "sNC._44_4_ = 0" (field_expression "sNC._44_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sNC.pWinSelect = (Select *)0x0;" (assignment_expression "sNC.pWinSelect = (Select *)0x0" (field_expression "sNC.pWinSelect" identifier . field_identifier) = (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sNC.pParse = pParse;" (assignment_expression "sNC.pParse = pParse" (field_expression "sNC.pParse" identifier . field_identifier) = identifier) ;) (expression_statement "sNC.pSrcList = pTabList;" (assignment_expression "sNC.pSrcList = pTabList" (field_expression "sNC.pSrcList" identifier . field_identifier) = identifier) ;) (expression_statement "iVar7 = sqlite3ResolveExprNames(&sNC,pWhere);" (assignment_expression "iVar7 = sqlite3ResolveExprNames(&sNC,pWhere)" identifier = (call_expression "sqlite3ResolveExprNames(&sNC,pWhere)" identifier (argument_list "(&sNC,pWhere)" ( (pointer_expression "&sNC" & identifier) , identifier )))) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00175a84;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0)) {\n    local_e4 = pParse->nMem + 1;\n    pParse->nMem = local_e4;\n    sqlite3VdbeAddOp2(p,0x45,0,local_e4);\n  }" if (parenthesized_expression "((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0))" ( (binary_expression "(((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&\n     (pParse->pTriggerTab == (Table *)0x0)" (parenthesized_expression "(((db->flags & 0x100000000) != 0) && (pParse->nested == '\0'))" ( (binary_expression "((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')" (parenthesized_expression "((db->flags & 0x100000000) != 0)" ( (binary_expression "(db->flags & 0x100000000) != 0" (parenthesized_expression "(db->flags & 0x100000000)" ( (binary_expression "db->flags & 0x100000000" (field_expression "db->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pParse->nested == '\0')" ( (binary_expression "pParse->nested == '\0'" (field_expression "pParse->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(pParse->pTriggerTab == (Table *)0x0)" ( (binary_expression "pParse->pTriggerTab == (Table *)0x0" (field_expression "pParse->pTriggerTab" identifier -> field_identifier) == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    local_e4 = pParse->nMem + 1;\n    pParse->nMem = local_e4;\n    sqlite3VdbeAddOp2(p,0x45,0,local_e4);\n  }" { (expression_statement "local_e4 = pParse->nMem + 1;" (assignment_expression "local_e4 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = local_e4;" (assignment_expression "pParse->nMem = local_e4" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "sqlite3VdbeAddOp2(p,0x45,0,local_e4);" (call_expression "sqlite3VdbeAddOp2(p,0x45,0,local_e4)" identifier (argument_list "(p,0x45,0,local_e4)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (if_statement "if (((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)) {\n    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);\n    if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }\n    pIVar9 = pTab->pIndex;\n    if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }\n  }\n  else {\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }" if (parenthesized_expression "(((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0))" ( (binary_expression "((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)) && (pTab->nModuleArg == 0)" (parenthesized_expression "((pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0))" ( (binary_expression "(pWhere == (Expr *)0x0 && local_10c == 0) && (iVar6 == 0)" (parenthesized_expression "(pWhere == (Expr *)0x0 && local_10c == 0)" ( (binary_expression "pWhere == (Expr *)0x0 && local_10c == 0" (binary_expression "pWhere == (Expr *)0x0" identifier == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_10c == 0" identifier == number_literal)) )) && (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n    sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);\n    if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }\n    pIVar9 = pTab->pIndex;\n    if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }\n  }" { (expression_statement "sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName);" (call_expression "sqlite3TableLock(pParse,iVar5,pTab->tnum,'\x01',pTab->zName)" identifier (argument_list "(pParse,iVar5,pTab->tnum,'\x01',pTab->zName)" ( identifier , identifier , (field_expression "pTab->tnum" identifier -> field_identifier) , (char_literal "'\x01'" ' escape_sequence ') , (field_expression "pTab->zName" identifier -> field_identifier) ))) ;) (if_statement "if ((pTab->tabFlags & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }" if (parenthesized_expression "((pTab->tabFlags & 0x80) == 0)" ( (binary_expression "(pTab->tabFlags & 0x80) == 0" (parenthesized_expression "(pTab->tabFlags & 0x80)" ( (binary_expression "pTab->tabFlags & 0x80" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);\n    }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (if_statement "if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = local_e4;\n      }" { (expression_statement "iVar6 = local_e4;" (assignment_expression "iVar6 = local_e4" identifier = identifier) ;) })) (expression_statement "sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1);" (call_expression "sqlite3VdbeAddOp4(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1)" identifier (argument_list "(p,0x89,pTab->tnum,iVar5,iVar6,pTab->zName,-1)" ( identifier , number_literal , (field_expression "pTab->tnum" identifier -> field_identifier) , identifier , identifier , (field_expression "pTab->zName" identifier -> field_identifier) , number_literal ))) ;) })) (expression_statement "pIVar9 = pTab->pIndex;" (assignment_expression "pIVar9 = pTab->pIndex" identifier = (field_expression "pTab->pIndex" identifier -> field_identifier)) ;) (if_statement "if (pIVar9 == (Index *)0x0) {\n      aToOpen = (u8 *)0x0;\n    }\n    else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }" if (parenthesized_expression "(pIVar9 == (Index *)0x0)" ( (binary_expression "pIVar9 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      aToOpen = (u8 *)0x0;\n    }" { (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }" else (compound_statement "{\n      do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);\n      aToOpen = (u8 *)0x0;\n    }" { (do_statement "do {\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      } while (pIVar9 != (Index *)0x0);" do (compound_statement "{\n        sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);\n        pIVar9 = pIVar9->pNext;\n      }" { (expression_statement "sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5);" (call_expression "sqlite3VdbeAddOp2(p,0x89,pIVar9->tnum,iVar5)" identifier (argument_list "(p,0x89,pIVar9->tnum,iVar5)" ( identifier , number_literal , (field_expression "pIVar9->tnum" identifier -> field_identifier) , identifier ))) ;) (expression_statement "pIVar9 = pIVar9->pNext;" (assignment_expression "pIVar9 = pIVar9->pNext" identifier = (field_expression "pIVar9->pNext" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pIVar9 != (Index *)0x0)" ( (binary_expression "pIVar9 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }" else (compound_statement "{\n    uVar4 = sNC._40_8_ & 0x40;\n    if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }\n    pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);\n    aToOpen = (u8 *)0x0;\n    if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;\n    lVar3 = *(long *)pWInfo->aiCurOnePass;\n    eMode = pWInfo->eOnePass;\n    uVar8 = (uint)eMode;\n    if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }\n    if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }\n    iVar5 = (int)((ulong)lVar3 >> 0x20);\n    if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }\n  }" { (expression_statement "uVar4 = sNC._40_8_ & 0x40;" (assignment_expression "uVar4 = sNC._40_8_ & 0x40" identifier = (binary_expression "sNC._40_8_ & 0x40" (field_expression "sNC._40_8_" identifier . field_identifier) & number_literal)) ;) (if_statement "if ((pTab->tabFlags & 0x80) == 0) {\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }\n    else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }" if (parenthesized_expression "((pTab->tabFlags & 0x80) == 0)" ( (binary_expression "(pTab->tabFlags & 0x80) == 0" (parenthesized_expression "(pTab->tabFlags & 0x80)" ( (binary_expression "pTab->tabFlags & 0x80" (field_expression "pTab->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_c4 = pParse->nMem + 1;\n      pParse->nMem = local_c4;\n      sqlite3VdbeAddOp2(p,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = (Index *)0x0;\n      local_c8 = 0;\n      local_c0 = 0;\n      local_128 = 0;\n    }" { (expression_statement "local_c4 = pParse->nMem + 1;" (assignment_expression "local_c4 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = local_c4;" (assignment_expression "pParse->nMem = local_c4" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "sqlite3VdbeAddOp2(p,0x48,0,local_c4);" (call_expression "sqlite3VdbeAddOp2(p,0x48,0,local_c4)" identifier (argument_list "(p,0x48,0,local_c4)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "local_d8 = (Index *)0x0;" (assignment_expression "local_d8 = (Index *)0x0" identifier = (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_128 = 0;" (assignment_expression "local_128 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }" else (compound_statement "{\n      local_d8 = sqlite3PrimaryKeyIndex(pTab);\n      local_e8 = local_d8->nKeyCol;\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = pParse->nMem + (int)(short)local_e8;\n      local_c8 = pParse->nTab;\n      pParse->nTab = local_c8 + 1;\n      local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);\n      sqlite3VdbeSetP4KeyInfo(pParse,local_d8);\n      local_c4 = 0;\n    }" { (expression_statement "local_d8 = sqlite3PrimaryKeyIndex(pTab);" (assignment_expression "local_d8 = sqlite3PrimaryKeyIndex(pTab)" identifier = (call_expression "sqlite3PrimaryKeyIndex(pTab)" identifier (argument_list "(pTab)" ( identifier )))) ;) (expression_statement "local_e8 = local_d8->nKeyCol;" (assignment_expression "local_e8 = local_d8->nKeyCol" identifier = (field_expression "local_d8->nKeyCol" identifier -> field_identifier)) ;) (expression_statement "local_128 = pParse->nMem + 1;" (assignment_expression "local_128 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = pParse->nMem + (int)(short)local_e8;" (assignment_expression "pParse->nMem = pParse->nMem + (int)(short)local_e8" (field_expression "pParse->nMem" identifier -> field_identifier) = (binary_expression "pParse->nMem + (int)(short)local_e8" (field_expression "pParse->nMem" identifier -> field_identifier) + (cast_expression "(int)(short)local_e8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)local_e8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)))) ;) (expression_statement "local_c8 = pParse->nTab;" (assignment_expression "local_c8 = pParse->nTab" identifier = (field_expression "pParse->nTab" identifier -> field_identifier)) ;) (expression_statement "pParse->nTab = local_c8 + 1;" (assignment_expression "pParse->nTab = local_c8 + 1" (field_expression "pParse->nTab" identifier -> field_identifier) = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (expression_statement "local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8);" (assignment_expression "local_c0 = sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8)" identifier = (call_expression "sqlite3VdbeAddOp2(p,100,local_c8,(int)(short)local_e8)" identifier (argument_list "(p,100,local_c8,(int)(short)local_e8)" ( identifier , number_literal , identifier , (cast_expression "(int)(short)local_e8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)local_e8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )))) ;) (expression_statement "sqlite3VdbeSetP4KeyInfo(pParse,local_d8);" (call_expression "sqlite3VdbeSetP4KeyInfo(pParse,local_d8)" identifier (argument_list "(pParse,local_d8)" ( identifier , identifier ))) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) (expression_statement "pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1);" (assignment_expression "pWInfo = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1)" identifier = (call_expression "sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1)" identifier (argument_list "(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                               (ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414,iCur + 1)" ( identifier , identifier , identifier , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (binary_expression "(ushort)(uVar4 == 0 && local_10c == 0) << 3 | 0x414" (binary_expression "(ushort)(uVar4 == 0 && local_10c == 0) << 3" (call_expression "(ushort)(uVar4 == 0 && local_10c == 0)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar4 == 0 && local_10c == 0)" ( (binary_expression "uVar4 == 0 && local_10c == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "local_10c == 0" identifier == number_literal)) ))) << number_literal) | number_literal) , (binary_expression "iCur + 1" identifier + number_literal) )))) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pWInfo == (WhereInfo *)0x0) goto LAB_00175a84;" if (parenthesized_expression "(pWInfo == (WhereInfo *)0x0)" ( (binary_expression "pWInfo == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)pWInfo->aiCurOnePass;" (assignment_expression "lVar3 = *(long *)pWInfo->aiCurOnePass" identifier = (pointer_expression "*(long *)pWInfo->aiCurOnePass" * (cast_expression "(long *)pWInfo->aiCurOnePass" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "pWInfo->aiCurOnePass" identifier -> field_identifier)))) ;) (expression_statement "eMode = pWInfo->eOnePass;" (assignment_expression "eMode = pWInfo->eOnePass" identifier = (field_expression "pWInfo->eOnePass" identifier -> field_identifier)) ;) (expression_statement "uVar8 = (uint)eMode;" (assignment_expression "uVar8 = (uint)eMode" identifier = (cast_expression "(uint)eMode" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar8 != 1) {\n      sqlite3MultiWrite(pParse);\n    }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      sqlite3MultiWrite(pParse);\n    }" { (expression_statement "sqlite3MultiWrite(pParse);" (call_expression "sqlite3MultiWrite(pParse)" identifier (argument_list "(pParse)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n      sqlite3VdbeAddOp2(p,0x52,local_e4,1);\n    }" { (expression_statement "sqlite3VdbeAddOp2(p,0x52,local_e4,1);" (call_expression "sqlite3VdbeAddOp2(p,0x52,local_e4,1)" identifier (argument_list "(p,0x52,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (expression_statement "iVar5 = (int)((ulong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)lVar3 >> 0x20)" ( (binary_expression "(ulong)lVar3 >> 0x20" (cast_expression "(ulong)lVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (local_d8 == (Index *)0x0) {\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }\n    else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }" if (parenthesized_expression "(local_d8 == (Index *)0x0)" ( (binary_expression "local_d8 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_128 = pParse->nMem + 1;\n      pParse->nMem = local_128;\n      sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);\n      if (uVar8 != 0) goto LAB_0017622b;\n      sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);\n      sqlite3WhereEnd(pWInfo);\n      if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }\n      if (pTab->nModuleArg == 0) goto LAB_00175f7d;\n      local_118 = sqlite3GetVTable(db,pTab);\n      sqlite3VtabMakeWritable(pParse,pTab);\n      sqlite3MayAbort(pParse);\nLAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);\n      sqlite3VdbeChangeP5(p,2);\n    }" { (expression_statement "local_128 = pParse->nMem + 1;" (assignment_expression "local_128 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = local_128;" (assignment_expression "pParse->nMem = local_128" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128);" (call_expression "sqlite3ExprCodeGetColumnOfTable(p,pTab,iCur,-1,local_128)" identifier (argument_list "(p,pTab,iCur,-1,local_128)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (uVar8 != 0) goto LAB_0017622b;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017622b;" goto statement_identifier ;)) (expression_statement "sqlite3VdbeAddOp2(p,0x93,local_c4,local_128);" (call_expression "sqlite3VdbeAddOp2(p,0x93,local_c4,local_128)" identifier (argument_list "(p,0x93,local_c4,local_128)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "sqlite3WhereEnd(pWInfo);" (call_expression "sqlite3WhereEnd(pWInfo)" identifier (argument_list "(pWInfo)" ( identifier ))) ;) (if_statement "if (pSVar2 == (Select *)0x0) {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }\n      else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }" if (parenthesized_expression "(pSVar2 == (Select *)0x0)" ( (binary_expression "pSVar2 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_001761b5:\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);" statement_identifier : (expression_statement "sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);" (call_expression "sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur)" identifier (argument_list "(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur)" ( identifier , identifier , number_literal , (char_literal "'\b'" ' escape_sequence ') , identifier , identifier , (pointer_expression "&iDataCur" & identifier) , (pointer_expression "&iIdxCur" & identifier) ))) ;)) }) (else_clause "else {\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }" else (compound_statement "{\n        local_e8 = 1;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) }))) (if_statement "if (uVar8 != 0) goto LAB_001762b7;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001762b7;" goto statement_identifier ;)) (if_statement "if (local_d8 == (Index *)0x0) {\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }" if (parenthesized_expression "(local_d8 == (Index *)0x0)" ( (binary_expression "local_d8 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);\n      }" { (expression_statement "iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128);" (assignment_expression "iVar6 = sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128)" identifier = (call_expression "sqlite3VdbeAddOp3(p,0x2a,local_c4,0,local_128)" identifier (argument_list "(p,0x2a,local_c4,0,local_128)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) }) (else_clause "else {\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }" else (compound_statement "{\nLAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);\n        if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }\n      }" { (labeled_statement "LAB_00175f34:\n        iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);" statement_identifier : (expression_statement "iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8);" (assignment_expression "iVar6 = sqlite3VdbeAddOp1(p,0x25,local_c8)" identifier = (call_expression "sqlite3VdbeAddOp1(p,0x25,local_c8)" identifier (argument_list "(p,0x25,local_c8)" ( identifier , number_literal , identifier )))) ;)) (if_statement "if (pTab->nModuleArg == 0) {\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }\n        else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);\n        }" { (expression_statement "sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128);" (call_expression "sqlite3VdbeAddOp2(p,0x7e,local_c8,local_128)" identifier (argument_list "(p,0x7e,local_c8,local_128)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }" else (compound_statement "{\n          sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);\n        }" { (expression_statement "sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128);" (call_expression "sqlite3VdbeAddOp3(p,0x59,local_c8,0,local_128)" identifier (argument_list "(p,0x59,local_c8,0,local_128)" ( identifier , number_literal , identifier , number_literal , identifier ))) ;) }))) }))) (if_statement "if (pTab->nModuleArg == 0) goto LAB_00175f7d;" if (parenthesized_expression "(pTab->nModuleArg == 0)" ( (binary_expression "pTab->nModuleArg == 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00175f7d;" goto statement_identifier ;)) (expression_statement "local_118 = sqlite3GetVTable(db,pTab);" (assignment_expression "local_118 = sqlite3GetVTable(db,pTab)" identifier = (call_expression "sqlite3GetVTable(db,pTab)" identifier (argument_list "(db,pTab)" ( identifier , identifier )))) ;) (expression_statement "sqlite3VtabMakeWritable(pParse,pTab);" (call_expression "sqlite3VtabMakeWritable(pParse,pTab)" identifier (argument_list "(pParse,pTab)" ( identifier , identifier ))) ;) (expression_statement "sqlite3MayAbort(pParse);" (call_expression "sqlite3MayAbort(pParse)" identifier (argument_list "(pParse)" ( identifier ))) ;) (labeled_statement "LAB_001764bf:\n      sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);" statement_identifier : (expression_statement "sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc);" (call_expression "sqlite3VdbeAddOp4(p,10,0,1,local_128,(char *)local_118,-0xc)" identifier (argument_list "(p,10,0,1,local_128,(char *)local_118,-0xc)" ( identifier , number_literal , number_literal , number_literal , identifier , (cast_expression "(char *)local_118" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;)) (expression_statement "sqlite3VdbeChangeP5(p,2);" (call_expression "sqlite3VdbeChangeP5(p,2)" identifier (argument_list "(p,2)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }" else (compound_statement "{\n      iVar6 = (int)(short)local_e8;\n      if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }\n      if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }\n      if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);\n    }" { (expression_statement "iVar6 = (int)(short)local_e8;" (assignment_expression "iVar6 = (int)(short)local_e8" identifier = (cast_expression "(int)(short)local_e8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)local_e8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (if_statement "if (0 < (short)local_e8) {\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }" if (parenthesized_expression "(0 < (short)local_e8)" ( (binary_expression "0 < (short)local_e8" number_literal < (cast_expression "(short)local_e8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n        lVar10 = 0;\n        do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);\n      }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar10);" do (compound_statement "{\n          sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);\n          lVar10 = lVar10 + 1;\n        }" { (expression_statement "sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10);" (call_expression "sqlite3ExprCodeGetColumnOfTable\n                    (p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10)" identifier (argument_list "(p,pTab,iCur,(int)local_d8->aiColumn[lVar10],local_128 + (int)lVar10)" ( identifier , identifier , identifier , (cast_expression "(int)local_d8->aiColumn[lVar10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_d8->aiColumn[lVar10]" (field_expression "local_d8->aiColumn" identifier -> field_identifier) [ identifier ])) , (binary_expression "local_128 + (int)lVar10" identifier + (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)(iVar6 - 1) + 1 != lVar10)" ( (binary_expression "(ulong)(iVar6 - 1) + 1 != lVar10" (binary_expression "(ulong)(iVar6 - 1) + 1" (call_expression "(ulong)(iVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar6 - 1)" ( (binary_expression "iVar6 - 1" identifier - number_literal) ))) + number_literal) != identifier) )) ;) })) (if_statement "if (uVar8 == 0) {\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }\n      else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = pParse->nMem + 1;\n        pParse->nMem = iVar7;\n        zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);\n        sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);\n        sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);\n        sqlite3WhereEnd(pWInfo);\n        local_128 = iVar7;\n        if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        aToOpen = (u8 *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        iVar6 = sqlite3VdbeAddOp0(p,0x11);\n        sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);\n        sqlite3VdbeJumpHereOrPopInst(p,iVar6);\n      }" { (expression_statement "iVar7 = pParse->nMem + 1;" (assignment_expression "iVar7 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = iVar7;" (assignment_expression "pParse->nMem = iVar7" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8);" (assignment_expression "zP4 = sqlite3IndexAffinityStr(pParse->db,local_d8)" identifier = (call_expression "sqlite3IndexAffinityStr(pParse->db,local_d8)" identifier (argument_list "(pParse->db,local_d8)" ( (field_expression "pParse->db" identifier -> field_identifier) , identifier )))) ;) (expression_statement "sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6);" (call_expression "sqlite3VdbeAddOp4(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6)" identifier (argument_list "(p,0x5b,local_128,iVar6,iVar7,zP4,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6);" (call_expression "sqlite3VdbeAddOp4Int(p,0x82,local_c8,iVar7,local_128,iVar6)" identifier (argument_list "(p,0x82,local_c8,iVar7,local_128,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "sqlite3WhereEnd(pWInfo);" (call_expression "sqlite3WhereEnd(pWInfo)" identifier (argument_list "(pWInfo)" ( identifier ))) ;) (expression_statement "local_128 = iVar7;" (assignment_expression "local_128 = iVar7" identifier = identifier) ;) (if_statement "if (pSVar2 != (Select *)0x0) {\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" if (parenthesized_expression "(pSVar2 != (Select *)0x0)" ( (binary_expression "pSVar2 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_e8 = 0;\n          aToOpen = (u8 *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (goto_statement "goto LAB_00175f34;" goto statement_identifier ;) })) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "aToOpen = (u8 *)0x0;" (assignment_expression "aToOpen = (u8 *)0x0" identifier = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;" statement_identifier : (if_statement "if (uVar8 != 2) goto LAB_001761b5;" if (parenthesized_expression "(uVar8 != 2)" ( (binary_expression "uVar8 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001761b5;" goto statement_identifier ;))) (expression_statement "iVar6 = sqlite3VdbeAddOp0(p,0x11);" (assignment_expression "iVar6 = sqlite3VdbeAddOp0(p,0x11)" identifier = (call_expression "sqlite3VdbeAddOp0(p,0x11)" identifier (argument_list "(p,0x11)" ( identifier , number_literal )))) ;) (expression_statement "sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur);" (call_expression "sqlite3OpenTableAndIndices(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur)" identifier (argument_list "(pParse,pTab,0x61,'\b',iCur,aToOpen,&iDataCur,&iIdxCur)" ( identifier , identifier , number_literal , (char_literal "'\b'" ' escape_sequence ') , identifier , identifier , (pointer_expression "&iDataCur" & identifier) , (pointer_expression "&iIdxCur" & identifier) ))) ;) (expression_statement "sqlite3VdbeJumpHereOrPopInst(p,iVar6);" (call_expression "sqlite3VdbeJumpHereOrPopInst(p,iVar6)" identifier (argument_list "(p,iVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }" else (compound_statement "{\nLAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));\n        if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }\n        memset(aToOpen,1,(long)(int)(local_f0 + 1));\n        aToOpen[(long)(int)local_f0 + 1] = '\0';\n        if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }\n        if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }\n        if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }\n        local_f0 = pParse->nLabel - 1;\n        pParse->nLabel = local_f0;\n        if (pSVar2 == (Select *)0x0) goto LAB_00176334;\n      }" { (labeled_statement "LAB_0017622b:\n        aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));" statement_identifier : (expression_statement "aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2));" (assignment_expression "aToOpen = (u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2))" identifier = (cast_expression "(u8 *)sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2))" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3DbMallocRawNN(db,(long)(int)(local_f0 + 2))" identifier (argument_list "(db,(long)(int)(local_f0 + 2))" ( identifier , (cast_expression "(long)(int)(local_f0 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 2)" ( (binary_expression "local_f0 + 2" identifier + number_literal) )))) ))))) ;)) (if_statement "if (aToOpen == (u8 *)0x0) {\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }" if (parenthesized_expression "(aToOpen == (u8 *)0x0)" ( (binary_expression "aToOpen == (u8 *)0x0" identifier == (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sqlite3WhereEnd(pWInfo);\n          goto LAB_00175a84;\n        }" { (expression_statement "sqlite3WhereEnd(pWInfo);" (call_expression "sqlite3WhereEnd(pWInfo)" identifier (argument_list "(pWInfo)" ( identifier ))) ;) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;) })) (expression_statement "memset(aToOpen,1,(long)(int)(local_f0 + 1));" (call_expression "memset(aToOpen,1,(long)(int)(local_f0 + 1))" identifier (argument_list "(aToOpen,1,(long)(int)(local_f0 + 1))" ( identifier , number_literal , (cast_expression "(long)(int)(local_f0 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 1)" ( (binary_expression "local_f0 + 1" identifier + number_literal) )))) ))) ;) (expression_statement "aToOpen[(long)(int)local_f0 + 1] = '\0';" (assignment_expression "aToOpen[(long)(int)local_f0 + 1] = '\0'" (subscript_expression "aToOpen[(long)(int)local_f0 + 1]" identifier [ (binary_expression "(long)(int)local_f0 + 1" (cast_expression "(long)(int)local_f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (-1 < (int)lVar3) {\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }" if (parenthesized_expression "(-1 < (int)lVar3)" ( (binary_expression "-1 < (int)lVar3" number_literal < (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          aToOpen[(int)lVar3 - iCur] = '\0';\n        }" { (expression_statement "aToOpen[(int)lVar3 - iCur] = '\0';" (assignment_expression "aToOpen[(int)lVar3 - iCur] = '\0'" (subscript_expression "aToOpen[(int)lVar3 - iCur]" identifier [ (binary_expression "(int)lVar3 - iCur" (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (-1 < lVar3) {\n          aToOpen[iVar5 - iCur] = '\0';\n        }" if (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) (compound_statement "{\n          aToOpen[iVar5 - iCur] = '\0';\n        }" { (expression_statement "aToOpen[iVar5 - iCur] = '\0';" (assignment_expression "aToOpen[iVar5 - iCur] = '\0'" (subscript_expression "aToOpen[iVar5 - iCur]" identifier [ (binary_expression "iVar5 - iCur" identifier - identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (local_c0 != 0) {\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }" if (parenthesized_expression "(local_c0 != 0)" ( (binary_expression "local_c0 != 0" identifier != number_literal) )) (compound_statement "{\n          sqlite3VdbeChangeToNoop(p,local_c0);\n        }" { (expression_statement "sqlite3VdbeChangeToNoop(p,local_c0);" (call_expression "sqlite3VdbeChangeToNoop(p,local_c0)" identifier (argument_list "(p,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "local_f0 = pParse->nLabel - 1;" (assignment_expression "local_f0 = pParse->nLabel - 1" identifier = (binary_expression "pParse->nLabel - 1" (field_expression "pParse->nLabel" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pParse->nLabel = local_f0;" (assignment_expression "pParse->nLabel = local_f0" (field_expression "pParse->nLabel" identifier -> field_identifier) = identifier) ;) (if_statement "if (pSVar2 == (Select *)0x0) goto LAB_00176334;" if (parenthesized_expression "(pSVar2 == (Select *)0x0)" ( (binary_expression "pSVar2 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00176334;" goto statement_identifier ;)) }))) (labeled_statement "LAB_001762b7:\n      if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }" statement_identifier : (if_statement "if (pTab->nModuleArg != 0) {\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }" if (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) )) (compound_statement "{\nLAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);\n        sqlite3VtabMakeWritable(pParse,pTab);\n        sqlite3MayAbort(pParse);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }\n        goto LAB_001764bf;\n      }" { (labeled_statement "LAB_001763f0:\n        local_118 = sqlite3GetVTable(db,pTab);" statement_identifier : (expression_statement "local_118 = sqlite3GetVTable(db,pTab);" (assignment_expression "local_118 = sqlite3GetVTable(db,pTab)" identifier = (call_expression "sqlite3GetVTable(db,pTab)" identifier (argument_list "(db,pTab)" ( identifier , identifier )))) ;)) (expression_statement "sqlite3VtabMakeWritable(pParse,pTab);" (call_expression "sqlite3VtabMakeWritable(pParse,pTab)" identifier (argument_list "(pParse,pTab)" ( identifier , identifier ))) ;) (expression_statement "sqlite3MayAbort(pParse);" (call_expression "sqlite3MayAbort(pParse)" identifier (argument_list "(pParse)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)) {\n          pParse->isMultiWrite = '\0';\n        }" if (parenthesized_expression "((uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0))" ( (binary_expression "(uVar8 == 1) && (sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)" (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0)" ( (comma_expression "sqlite3VdbeAddOp1(p,0x74,iCur), pParse->pToplevel == (Parse *)0x0" (call_expression "sqlite3VdbeAddOp1(p,0x74,iCur)" identifier (argument_list "(p,0x74,iCur)" ( identifier , number_literal , identifier ))) , (binary_expression "pParse->pToplevel == (Parse *)0x0" (field_expression "pParse->pToplevel" identifier -> field_identifier) == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          pParse->isMultiWrite = '\0';\n        }" { (expression_statement "pParse->isMultiWrite = '\0';" (assignment_expression "pParse->isMultiWrite = '\0'" (field_expression "pParse->isMultiWrite" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (goto_statement "goto LAB_001764bf;" goto statement_identifier ;) }))) (if_statement "if (aToOpen[iDataCur - iCur] == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(aToOpen[iDataCur - iCur] == '\0')" ( (binary_expression "aToOpen[iDataCur - iCur] == '\0'" (subscript_expression "aToOpen[iDataCur - iCur]" identifier [ (binary_expression "iDataCur - iCur" identifier - identifier) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);\n        if (pTab->nModuleArg != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" { (expression_statement "sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8);" (call_expression "sqlite3VdbeAddOp4Int(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8)" identifier (argument_list "(p,0x1d,iDataCur,local_f0,local_128,(int)(short)local_e8)" ( identifier , number_literal , identifier , identifier , identifier , (cast_expression "(int)(short)local_e8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)local_e8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ))) ;) (if_statement "if (pTab->nModuleArg != 0) goto LAB_001763f0;" if (parenthesized_expression "(pTab->nModuleArg != 0)" ( (binary_expression "pTab->nModuleArg != 0" (field_expression "pTab->nModuleArg" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_001763f0;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00175f7d:\n      sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);" statement_identifier : (expression_statement "sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5);" (call_expression "sqlite3GenerateRowDelete\n                (pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5)" identifier (argument_list "(pParse,pTab,pTrigger,iDataCur,iIdxCur,local_128,local_e8,pParse->nested == '\0',\n                 '\v',eMode,iVar5)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "pParse->nested == '\0'" (field_expression "pParse->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) , (char_literal "'\v'" ' escape_sequence ') , identifier , identifier ))) ;)) }))) (if_statement "if (uVar8 == 0) {\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }\n    else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n    }" { (if_statement "if (local_d8 == (Index *)0x0) {\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }\n      else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }" if (parenthesized_expression "(local_d8 == (Index *)0x0)" ( (binary_expression "local_d8 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3VdbeGoto(p,iVar6);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }" { (expression_statement "sqlite3VdbeGoto(p,iVar6);" (call_expression "sqlite3VdbeGoto(p,iVar6)" identifier (argument_list "(p,iVar6)" ( identifier , identifier ))) ;) (expression_statement "sqlite3VdbeJumpHere(p,iVar6);" (call_expression "sqlite3VdbeJumpHere(p,iVar6)" identifier (argument_list "(p,iVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }" else (compound_statement "{\n        sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);\n        sqlite3VdbeJumpHere(p,iVar6);\n      }" { (expression_statement "sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1);" (call_expression "sqlite3VdbeAddOp2(p,5,local_c8,iVar6 + 1)" identifier (argument_list "(p,5,local_c8,iVar6 + 1)" ( identifier , number_literal , identifier , (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) (expression_statement "sqlite3VdbeJumpHere(p,iVar6);" (call_expression "sqlite3VdbeJumpHere(p,iVar6)" identifier (argument_list "(p,iVar6)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }" else (compound_statement "{\n      sqlite3VdbeResolveLabel(p,local_f0);\n      sqlite3WhereEnd(pWInfo);\n    }" { (expression_statement "sqlite3VdbeResolveLabel(p,local_f0);" (call_expression "sqlite3VdbeResolveLabel(p,local_f0)" identifier (argument_list "(p,local_f0)" ( identifier , identifier ))) ;) (expression_statement "sqlite3WhereEnd(pWInfo);" (call_expression "sqlite3WhereEnd(pWInfo)" identifier (argument_list "(pWInfo)" ( identifier ))) ;) }))) }))) (if_statement "if ((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) {\n    sqlite3AutoincrementEnd(pParse);\n  }" if (parenthesized_expression "((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0))" ( (binary_expression "(pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)" (parenthesized_expression "(pParse->nested == '\0')" ( (binary_expression "pParse->nested == '\0'" (field_expression "pParse->nested" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pParse->pTriggerTab == (Table *)0x0)" ( (binary_expression "pParse->pTriggerTab == (Table *)0x0" (field_expression "pParse->pTriggerTab" identifier -> field_identifier) == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    sqlite3AutoincrementEnd(pParse);\n  }" { (expression_statement "sqlite3AutoincrementEnd(pParse);" (call_expression "sqlite3AutoincrementEnd(pParse)" identifier (argument_list "(pParse)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n    sqlite3VdbeAddOp2(p,0x50,local_e4,1);\n    sqlite3VdbeSetNumCols(p,1);\n    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);\n  }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n    sqlite3VdbeAddOp2(p,0x50,local_e4,1);\n    sqlite3VdbeSetNumCols(p,1);\n    sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);\n  }" { (expression_statement "sqlite3VdbeAddOp2(p,0x50,local_e4,1);" (call_expression "sqlite3VdbeAddOp2(p,0x50,local_e4,1)" identifier (argument_list "(p,0x50,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "sqlite3VdbeSetNumCols(p,1);" (call_expression "sqlite3VdbeSetNumCols(p,1)" identifier (argument_list "(p,1)" ( identifier , number_literal ))) ;) (expression_statement "sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0);" (call_expression "sqlite3VdbeSetColName(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0)" identifier (argument_list "(p,0,0,"rows deleted",(_func_void_void_ptr *)0x0)" ( identifier , number_literal , number_literal , (string_literal ""rows deleted"" " string_content ") , (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (labeled_statement "LAB_00175a84:\n  if (sContext.pParse != (Parse *)0x0) {\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }" statement_identifier : (if_statement "if (sContext.pParse != (Parse *)0x0) {\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }" if (parenthesized_expression "(sContext.pParse != (Parse *)0x0)" ( (binary_expression "sContext.pParse != (Parse *)0x0" (field_expression "sContext.pParse" identifier . field_identifier) != (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (sContext.pParse)->zAuthContext = sContext.zAuthContext;\n    sContext.pParse = (Parse *)0x0;\n  }" { (expression_statement "(sContext.pParse)->zAuthContext = sContext.zAuthContext;" (assignment_expression "(sContext.pParse)->zAuthContext = sContext.zAuthContext" (field_expression "(sContext.pParse)->zAuthContext" (parenthesized_expression "(sContext.pParse)" ( (field_expression "sContext.pParse" identifier . field_identifier) )) -> field_identifier) = (field_expression "sContext.zAuthContext" identifier . field_identifier)) ;) (expression_statement "sContext.pParse = (Parse *)0x0;" (assignment_expression "sContext.pParse = (Parse *)0x0" (field_expression "sContext.pParse" identifier . field_identifier) = (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "sqlite3SrcListDelete(db,pTabList);" (call_expression "sqlite3SrcListDelete(db,pTabList)" identifier (argument_list "(db,pTabList)" ( identifier , identifier ))) ;) (expression_statement "sqlite3ExprDelete(db,pWhere);" (call_expression "sqlite3ExprDelete(db,pWhere)" identifier (argument_list "(db,pWhere)" ( identifier , identifier ))) ;) (expression_statement "sqlite3DbFree(db,aToOpen);" (call_expression "sqlite3DbFree(db,aToOpen)" identifier (argument_list "(db,aToOpen)" ( identifier , identifier ))) ;) (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" identifier (parameter_list "(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined8 local_118;" type_identifier identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "short local_e8;" (sized_type_specifier "short" short) identifier ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "long local_d8;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_80;" (sized_type_specifier "long" long) (pointer_declarator "*local_80" * identifier) ;) (declaration "long *local_78;" (sized_type_specifier "long" long) (pointer_declarator "*local_78" * identifier) ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" 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_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;" if (parenthesized_expression "((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0))" ( (binary_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" (parenthesized_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0'))" ( (binary_expression "((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')" (parenthesized_expression "((int)param_1[6] != 0)" ( (binary_expression "(int)param_1[6] != 0" (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ])) != number_literal) )) || (parenthesized_expression "(*(char *)(lVar2 + 0x61) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x61) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x61)" * (cast_expression "(char *)(lVar2 + 0x61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x61)" ( (binary_expression "lVar2 + 0x61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" ( (comma_expression "plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0" (assignment_expression "plVar10 = (long *)FUN_00174d5c()" identifier = (cast_expression "(long *)FUN_00174d5c()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00174d5c()" identifier (argument_list "()" ( ))))) , (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);" (assignment_expression "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0)" identifier = (call_expression "FUN_00111fa0(param_1,plVar10,0x7e,0,0)" identifier (argument_list "(param_1,plVar10,0x7e,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "lVar16 = plVar10[3];" (assignment_expression "lVar16 = plVar10[3]" identifier = (subscript_expression "plVar10[3]" identifier [ number_literal ])) ;) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (if_statement "if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" { (expression_statement "iVar5 = FUN_001116f3(param_1,plVar10,0,0);" (assignment_expression "iVar5 = FUN_001116f3(param_1,plVar10,0,0)" identifier = (call_expression "FUN_001116f3(param_1,plVar10,0,0)" identifier (argument_list "(param_1,plVar10,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "bVar17 = iVar5 != 0;" (assignment_expression "bVar17 = iVar5 != 0" identifier = (binary_expression "iVar5 != 0" identifier != number_literal)) ;) })) (expression_statement "iVar5 = FUN_001684fe(param_1,plVar10);" (assignment_expression "iVar5 = FUN_001684fe(param_1,plVar10)" identifier = (call_expression "FUN_001684fe(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;" if (parenthesized_expression "((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0" (assignment_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0)" identifier = (call_expression "FUN_0012e937(param_1,plVar10,lVar11 != 0)" identifier (argument_list "(param_1,plVar10,lVar11 != 0)" ( identifier , identifier , (binary_expression "lVar11 != 0" identifier != number_literal) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);" (assignment_expression "iVar5 = FUN_00111b49(lVar2,plVar10[0xe])" identifier = (call_expression "FUN_00111b49(lVar2,plVar10[0xe])" identifier (argument_list "(lVar2,plVar10[0xe])" ( identifier , (subscript_expression "plVar10[0xe]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));" (assignment_expression "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" identifier = (call_expression "FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" identifier (argument_list "(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" ( identifier , number_literal , (pointer_expression "*plVar10" * identifier) , number_literal , (pointer_expression "*(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" * (cast_expression "(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" ( (binary_expression "(long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)" (binary_expression "(long)iVar5 * 0x20" (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) )))) )))) ;) (if_statement "if (iVar6 == 1) goto LAB_00175a84;" if (parenthesized_expression "(iVar6 == 1)" ( (binary_expression "iVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)((long)param_1 + 0x34);" (assignment_expression "iVar1 = *(int *)((long)param_1 + 0x34)" identifier = (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((long)param_1 + 0x34) = iVar1 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = iVar1 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_2 + 0x48) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x48) = iVar1" (pointer_expression "*(int *)(param_2 + 0x48)" * (cast_expression "(int *)(param_2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar12 = plVar10[2];" (assignment_expression "lVar12 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (if_statement "if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" if (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" { (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);" do (compound_statement "{\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    }" { (expression_statement "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "lVar12 = *(long *)(lVar12 + 0x28);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x28)" identifier = (pointer_expression "*(long *)(lVar12 + 0x28)" * (cast_expression "(long *)(lVar12 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x28)" ( (binary_expression "lVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = local_f0 + 1;" (assignment_expression "local_f0 = local_f0 + 1" identifier = (binary_expression "local_f0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) ;) })) (if_statement "if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" { (expression_statement "local_88 = param_1[0x2c];" (assignment_expression "local_88 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2c] = *plVar10;" (assignment_expression "param_1[0x2c] = *plVar10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" identifier = identifier) ;) })) (expression_statement "lVar12 = FUN_00121a1e(param_1);" (assignment_expression "lVar12 = FUN_00121a1e(param_1)" identifier = (call_expression "FUN_00121a1e(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar12 == 0) goto LAB_00175a84;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (if_statement "if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" if (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" { (expression_statement "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;" (assignment_expression "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" * (cast_expression "(byte *)(lVar12 + 0xc6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc6)" ( (binary_expression "lVar12 + 0xc6" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" * (cast_expression "(byte *)(lVar12 + 0xc6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc6)" ( (binary_expression "lVar12 + 0xc6" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "FUN_00152f68(param_1,bVar17,iVar5);" (call_expression "FUN_00152f68(param_1,bVar17,iVar5)" identifier (argument_list "(param_1,bVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" { (expression_statement "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);" (call_expression "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1)" identifier (argument_list "(param_1,plVar10,param_3,param_4,param_5,iVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_90 = iVar1;" (assignment_expression "local_90 = iVar1" identifier = identifier) ;) (expression_statement "local_8c = iVar1;" (assignment_expression "local_8c = iVar1" identifier = identifier) ;) })) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0012ce42(&local_78,param_3);" (assignment_expression "iVar7 = FUN_0012ce42(&local_78,param_3)" identifier = (call_expression "FUN_0012ce42(&local_78,param_3)" identifier (argument_list "(&local_78,param_3)" ( (pointer_expression "&local_78" & identifier) , identifier )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00175a84;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" if (parenthesized_expression "((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0))" ( (binary_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)" (parenthesized_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0'))" ( (binary_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')" (parenthesized_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x34) & 1)" ( (binary_expression "*(byte *)(lVar2 + 0x34) & 1" (pointer_expression "*(byte *)(lVar2 + 0x34)" * (cast_expression "(byte *)(lVar2 + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x34)" ( (binary_expression "lVar2 + 0x34" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x15] == 0)" ( (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" { (expression_statement "local_e4 = (int)param_1[7] + 1;" (assignment_expression "local_e4 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = local_e4;" (assignment_expression "*(int *)(param_1 + 7) = local_e4" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001207c0(lVar12,0x45,0,local_e4);" (call_expression "FUN_001207c0(lVar12,0x45,0,local_e4)" identifier (argument_list "(lVar12,0x45,0,local_e4)" ( identifier , number_literal , number_literal , identifier ))) ;) })) (if_statement "if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" if (parenthesized_expression "(((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))" ( (binary_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0))" ( (binary_expression "(param_3 == 0 && bVar17 == false) && (iVar6 == 0)" (parenthesized_expression "(param_3 == 0 && bVar17 == false)" ( (binary_expression "param_3 == 0 && bVar17 == false" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "bVar17 == false" identifier == false)) )) && (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }" { (expression_statement "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);" (call_expression "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10)" identifier (argument_list "(param_1,iVar5,(int)plVar10[7],1,*plVar10)" ( identifier , identifier , (cast_expression "(int)plVar10[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[7]" identifier [ number_literal ])) , number_literal , (pointer_expression "*plVar10" * identifier) ))) ;) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" if (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" ( (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" * (cast_expression "(byte *)(plVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 8)" ( (binary_expression "plVar10 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (if_statement "if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = local_e4;\n      }" { (expression_statement "iVar6 = local_e4;" (assignment_expression "iVar6 = local_e4" identifier = identifier) ;) })) (expression_statement "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);" (call_expression "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" identifier (argument_list "(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" ( identifier , number_literal , (cast_expression "(int)plVar10[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar10[7]" identifier [ number_literal ])) , identifier , identifier , (pointer_expression "*plVar10" * identifier) , number_literal ))) ;) })) (expression_statement "lVar16 = plVar10[2];" (assignment_expression "lVar16 = plVar10[2]" identifier = (subscript_expression "plVar10[2]" identifier [ number_literal ])) ;) (if_statement "if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      __s = (void *)0x0;\n    }" { (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" else (compound_statement "{\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" { (do_statement "do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);" do (compound_statement "{\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      }" { (expression_statement "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);" (call_expression "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" identifier (argument_list "(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(lVar16 + 0x58)" * (cast_expression "(undefined4 *)(lVar16 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" identifier = (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" else (compound_statement "{\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" { (expression_statement "uVar4 = local_50 & 0x40;" (assignment_expression "uVar4 = local_50 & 0x40" identifier = (binary_expression "local_50 & 0x40" identifier & number_literal)) ;) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" if (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" ( (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" ( (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" * (cast_expression "(byte *)(plVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar10 + 8)" ( (binary_expression "plVar10 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }" { (expression_statement "local_c4 = (int)param_1[7] + 1;" (assignment_expression "local_c4 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = local_c4;" (assignment_expression "*(int *)(param_1 + 7) = local_c4" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001207c0(lVar12,0x48,0,local_c4);" (call_expression "FUN_001207c0(lVar12,0x48,0,local_c4)" identifier (argument_list "(lVar12,0x48,0,local_c4)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" else (compound_statement "{\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" { (expression_statement "local_d8 = FUN_00111247(plVar10);" (assignment_expression "local_d8 = FUN_00111247(plVar10)" identifier = (call_expression "FUN_00111247(plVar10)" identifier (argument_list "(plVar10)" ( identifier )))) ;) (expression_statement "local_e8 = *(short *)(local_d8 + 0x5e);" (assignment_expression "local_e8 = *(short *)(local_d8 + 0x5e)" identifier = (pointer_expression "*(short *)(local_d8 + 0x5e)" * (cast_expression "(short *)(local_d8 + 0x5e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 0x5e)" ( (binary_expression "local_d8 + 0x5e" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;" (assignment_expression "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "(int)param_1[7] + (int)local_e8" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_c8 = *(int *)((long)param_1 + 0x34);" (assignment_expression "local_c8 = *(int *)((long)param_1 + 0x34)" identifier = (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((long)param_1 + 0x34) = local_c8 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = local_c8 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" * (cast_expression "(int *)((long)param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (expression_statement "local_c0 = FUN_001207c0(lVar12,100);" (assignment_expression "local_c0 = FUN_001207c0(lVar12,100)" identifier = (call_expression "FUN_001207c0(lVar12,100)" identifier (argument_list "(lVar12,100)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0013744b(param_1,local_d8);" (call_expression "FUN_0013744b(param_1,local_d8)" identifier (argument_list "(param_1,local_d8)" ( identifier , identifier ))) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);" (assignment_expression "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" identifier = (call_expression "FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" identifier (argument_list "(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" ( identifier , identifier , identifier , number_literal , number_literal , (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414" (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3" (call_expression "(ushort)(uVar4 == 0 && bVar17 == false)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar4 == 0 && bVar17 == false)" ( (binary_expression "uVar4 == 0 && bVar17 == false" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "bVar17 == false" identifier == false)) ))) << number_literal) | number_literal) , (binary_expression "iVar1 + 1" identifier + number_literal) )))) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar13 == 0) goto LAB_00175a84;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar13 + 0x28);" (assignment_expression "lVar3 = *(long *)(lVar13 + 0x28)" identifier = (pointer_expression "*(long *)(lVar13 + 0x28)" * (cast_expression "(long *)(lVar13 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*(byte *)(lVar13 + 0x42);" (assignment_expression "uVar8 = (uint)*(byte *)(lVar13 + 0x42)" identifier = (binary_expression "(uint)*(byte *)(lVar13 + 0x42)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(lVar13 + 0x42)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x42)" ( (binary_expression "lVar13 + 0x42" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      FUN_0011158f(param_1);\n    }" { (expression_statement "FUN_0011158f(param_1);" (call_expression "FUN_0011158f(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" { (expression_statement "FUN_001207c0(lVar12,0x52,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x52,local_e4,1)" identifier (argument_list "(lVar12,0x52,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (if_statement "if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }" { (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = iVar5;" (assignment_expression "*(int *)(param_1 + 7) = iVar5" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5)" identifier (argument_list "(lVar12,plVar10,iVar1,0xffffffff,iVar5)" ( identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (uVar8 != 0) goto LAB_0017622b;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017622b;" goto statement_identifier ;)) (expression_statement "FUN_001207c0(lVar12,0x93,local_c4,iVar5);" (call_expression "FUN_001207c0(lVar12,0x93,local_c4,iVar5)" identifier (argument_list "(lVar12,0x93,local_c4,iVar5)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (if_statement "if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" statement_identifier : (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" identifier (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_8c" & identifier) ))) ;)) }) (else_clause "else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" else (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" { (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) }))) (if_statement "if (uVar8 != 0) goto LAB_001762b7;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001762b7;" goto statement_identifier ;)) (if_statement "if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }" { (expression_statement "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);" (assignment_expression "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" identifier = (call_expression "FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" identifier (argument_list "(lVar12,0x2a,local_c4,0,iVar5)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) }) (else_clause "else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" else (compound_statement "{\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" { (labeled_statement "LAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);" statement_identifier : (expression_statement "iVar6 = FUN_00120894(lVar12,0x25,local_c8);" (assignment_expression "iVar6 = FUN_00120894(lVar12,0x25,local_c8)" identifier = (call_expression "FUN_00120894(lVar12,0x25,local_c8)" identifier (argument_list "(lVar12,0x25,local_c8)" ( identifier , number_literal , identifier )))) ;)) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }" { (expression_statement "FUN_001207c0(lVar12,0x7e,local_c8,iVar5);" (call_expression "FUN_001207c0(lVar12,0x7e,local_c8,iVar5)" identifier (argument_list "(lVar12,0x7e,local_c8,iVar5)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" else (compound_statement "{\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" { (expression_statement "FUN_00120767(lVar12,0x59,local_c8,0,iVar5);" (call_expression "FUN_00120767(lVar12,0x59,local_c8,0,iVar5)" identifier (argument_list "(lVar12,0x59,local_c8,0,iVar5)" ( identifier , number_literal , identifier , number_literal , identifier ))) ;) }))) }))) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00175f7d;" goto statement_identifier ;)) (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" identifier = (call_expression "FUN_0011203f(lVar2,plVar10)" identifier (argument_list "(lVar2,plVar10)" ( identifier , identifier )))) ;) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier ))) ;) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" statement_identifier : (expression_statement "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" (call_expression "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" identifier (argument_list "(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" ( identifier , number_literal , number_literal , number_literal , identifier , identifier , number_literal ))) ;)) (expression_statement "FUN_0010f49a(lVar12,2);" (call_expression "FUN_0010f49a(lVar12,2)" identifier (argument_list "(lVar12,2)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" else (compound_statement "{\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" { (expression_statement "iVar6 = (int)local_e8;" (assignment_expression "iVar6 = (int)local_e8" identifier = (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" if (parenthesized_expression "(0 < local_e8)" ( (binary_expression "0 < local_e8" number_literal < identifier) )) (compound_statement "{\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" { (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);" do (compound_statement "{\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        }" { (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" identifier (argument_list "(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" ( identifier , identifier , identifier , (cast_expression "(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" * (cast_expression "(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_d8 + 8) + lVar15 * 2)" ( (binary_expression "*(long *)(local_d8 + 8) + lVar15 * 2" (pointer_expression "*(long *)(local_d8 + 8)" * (cast_expression "(long *)(local_d8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 8)" ( (binary_expression "local_d8 + 8" identifier + number_literal) )))) + (binary_expression "lVar15 * 2" identifier * number_literal)) ))))) , (binary_expression "iVar5 + (int)lVar15" identifier + (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)(iVar6 - 1) + 1 != lVar15)" ( (binary_expression "(ulong)(iVar6 - 1) + 1 != lVar15" (binary_expression "(ulong)(iVar6 - 1) + 1" (call_expression "(ulong)(iVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar6 - 1)" ( (binary_expression "iVar6 - 1" identifier - number_literal) ))) + number_literal) != identifier) )) ;) })) (if_statement "if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }" { (expression_statement "iVar7 = (int)param_1[7] + 1;" (assignment_expression "iVar7 = (int)param_1[7] + 1" identifier = (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 7) = iVar7;" (assignment_expression "*(int *)(param_1 + 7) = iVar7" (pointer_expression "*(int *)(param_1 + 7)" * (cast_expression "(int *)(param_1 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = FUN_001349e4(*param_1,local_d8);" (assignment_expression "uVar14 = FUN_001349e4(*param_1,local_d8)" identifier = (call_expression "FUN_001349e4(*param_1,local_d8)" identifier (argument_list "(*param_1,local_d8)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);" (call_expression "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" identifier (argument_list "(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);" (call_expression "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" identifier (argument_list "(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (expression_statement "iVar5 = iVar7;" (assignment_expression "iVar5 = iVar7" identifier = identifier) ;) (if_statement "if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" { (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (goto_statement "goto LAB_00175f34;" goto statement_identifier ;) })) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" identifier = identifier) ;) (labeled_statement "LAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;" statement_identifier : (if_statement "if (uVar8 != 2) goto LAB_001761b5;" if (parenthesized_expression "(uVar8 != 2)" ( (binary_expression "uVar8 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001761b5;" goto statement_identifier ;))) (expression_statement "uVar9 = FUN_0012083c(lVar12,0x11);" (assignment_expression "uVar9 = FUN_0012083c(lVar12,0x11)" identifier = (call_expression "FUN_0012083c(lVar12,0x11)" identifier (argument_list "(lVar12,0x11)" ( identifier , number_literal )))) ;) (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" identifier (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_8c" & identifier) ))) ;) (expression_statement "FUN_0010f508(lVar12,uVar9);" (call_expression "FUN_0010f508(lVar12,uVar9)" identifier (argument_list "(lVar12,uVar9)" ( identifier , identifier ))) ;) }) (else_clause "else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" else (compound_statement "{\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" { (labeled_statement "LAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" statement_identifier : (expression_statement "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" (assignment_expression "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" identifier = (cast_expression "(void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" identifier (argument_list "(lVar2,(long)(int)(local_f0 + 2))" ( identifier , (cast_expression "(long)(int)(local_f0 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 2)" ( (binary_expression "local_f0 + 2" identifier + number_literal) )))) ))))) ;)) (if_statement "if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" if (parenthesized_expression "(__s == (void *)0x0)" ( (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" { (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00175a84;" goto statement_identifier ;) })) (expression_statement "memset(__s,1,(long)(int)(local_f0 + 1));" (call_expression "memset(__s,1,(long)(int)(local_f0 + 1))" identifier (argument_list "(__s,1,(long)(int)(local_f0 + 1))" ( identifier , number_literal , (cast_expression "(long)(int)(local_f0 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(local_f0 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + 1)" ( (binary_expression "local_f0 + 1" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" * (cast_expression "(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(int)local_f0 + 1)" ( (binary_expression "(long)__s + (long)(int)local_f0 + 1" (binary_expression "(long)__s + (long)(int)local_f0" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(int)local_f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" if (parenthesized_expression "(-1 < (int)lVar3)" ( (binary_expression "-1 < (int)lVar3" number_literal < (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" { (expression_statement "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" * (cast_expression "(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)((int)lVar3 - iVar1))" ( (binary_expression "(long)__s + (long)((int)lVar3 - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)((int)lVar3 - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((int)lVar3 - iVar1)" ( (binary_expression "(int)lVar3 - iVar1" (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )))) = number_literal) ;) })) (if_statement "if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" if (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" { (expression_statement "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" * (cast_expression "(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" ( (binary_expression "(long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)((int)((ulong)lVar3 >> 0x20) - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((int)((ulong)lVar3 >> 0x20) - iVar1)" ( (binary_expression "(int)((ulong)lVar3 >> 0x20) - iVar1" (cast_expression "(int)((ulong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)lVar3 >> 0x20)" ( (binary_expression "(ulong)lVar3 >> 0x20" (cast_expression "(ulong)lVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) - identifier) )))) )))) = number_literal) ;) })) (if_statement "if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }" if (parenthesized_expression "(local_c0 != 0)" ( (binary_expression "local_c0 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_0011aaa4(lVar12,local_c0);\n        }" { (expression_statement "FUN_0011aaa4(lVar12,local_c0);" (call_expression "FUN_0011aaa4(lVar12,local_c0)" identifier (argument_list "(lVar12,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "local_f0 = *(int *)((long)param_1 + 0x44) - 1;" (assignment_expression "local_f0 = *(int *)((long)param_1 + 0x44) - 1" identifier = (binary_expression "*(int *)((long)param_1 + 0x44) - 1" (pointer_expression "*(int *)((long)param_1 + 0x44)" * (cast_expression "(int *)((long)param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) - number_literal)) ;) (expression_statement "*(uint *)((long)param_1 + 0x44) = local_f0;" (assignment_expression "*(uint *)((long)param_1 + 0x44) = local_f0" (pointer_expression "*(uint *)((long)param_1 + 0x44)" * (cast_expression "(uint *)((long)param_1 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (lVar16 == 0) goto LAB_00176334;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00176334;" goto statement_identifier ;)) }))) (labeled_statement "LAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" statement_identifier : (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" { (labeled_statement "LAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);" statement_identifier : (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" identifier = (call_expression "FUN_0011203f(lVar2,plVar10)" identifier (argument_list "(lVar2,plVar10)" ( identifier , identifier )))) ;)) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" identifier (argument_list "(param_1,plVar10)" ( identifier , identifier ))) ;) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" if (parenthesized_expression "((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0))" ( (binary_expression "(uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "(FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" ( (comma_expression "FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0" (call_expression "FUN_00120894(lVar12,0x74,iVar1)" identifier (argument_list "(lVar12,0x74,iVar1)" ( identifier , number_literal , identifier ))) , (binary_expression "param_1[0x14] == 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_001764bf;" goto statement_identifier ;) }))) (if_statement "if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0')" ( (binary_expression "*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0'" (pointer_expression "*(char *)((long)__s + (long)(local_90 - iVar1))" * (cast_expression "(char *)((long)__s + (long)(local_90 - iVar1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(local_90 - iVar1))" ( (binary_expression "(long)__s + (long)(local_90 - iVar1)" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(local_90 - iVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(local_90 - iVar1)" ( (binary_expression "local_90 - iVar1" identifier - identifier) )))) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" { (expression_statement "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);" (call_expression "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" identifier (argument_list "(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" ( identifier , number_literal , identifier , identifier , identifier , (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;" if (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" ( (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" * (cast_expression "(int *)((long)plVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar10 + 0x54)" ( (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001763f0;" goto statement_identifier ;)) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" statement_identifier : (expression_statement "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" (call_expression "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" identifier (argument_list "(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" ( identifier , identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)local_e8" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) , number_literal , identifier , (binary_expression "lVar3 >> 0x20" identifier >> number_literal) ))) ;)) }))) (if_statement "if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }" { (if_statement "if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" if (parenthesized_expression "(local_d8 == 0)" ( (binary_expression "local_d8 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" { (expression_statement "FUN_00120941(lVar12,iVar6);" (call_expression "FUN_00120941(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" else (compound_statement "{\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" { (expression_statement "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);" (call_expression "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1)" identifier (argument_list "(lVar12,5,local_c8,iVar6 + 1)" ( identifier , number_literal , identifier , (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" identifier (argument_list "(lVar12,iVar6)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" else (compound_statement "{\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" { (expression_statement "FUN_00120437(lVar12,local_f0);" (call_expression "FUN_00120437(lVar12,local_f0)" identifier (argument_list "(lVar12,local_f0)" ( identifier , identifier ))) ;) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" identifier (argument_list "(lVar13)" ( identifier ))) ;) }))) }))) (if_statement "if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }" if (parenthesized_expression "((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0))" ( (binary_expression "(*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)" (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" ( (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" * (cast_expression "(char *)((long)param_1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x1e)" ( (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x15] == 0)" ( (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    FUN_001375f3(param_1);\n  }" { (expression_statement "FUN_001375f3(param_1);" (call_expression "FUN_001375f3(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (if_statement "if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" if (parenthesized_expression "(local_e4 != 0)" ( (binary_expression "local_e4 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" { (expression_statement "FUN_001207c0(lVar12,0x50,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x50,local_e4,1)" identifier (argument_list "(lVar12,0x50,local_e4,1)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "FUN_0011f43e(lVar12,1);" (call_expression "FUN_0011f43e(lVar12,1)" identifier (argument_list "(lVar12,1)" ( identifier , number_literal ))) ;) (expression_statement "FUN_00125119(lVar12,0,0,"rows deleted",0);" (call_expression "FUN_00125119(lVar12,0,0,"rows deleted",0)" identifier (argument_list "(lVar12,0,0,"rows deleted",0)" ( identifier , number_literal , number_literal , (string_literal ""rows deleted"" " string_content ") , number_literal ))) ;) })) (labeled_statement "LAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" statement_identifier : (if_statement "if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" if (parenthesized_expression "(local_80 != (long *)0x0)" ( (binary_expression "local_80 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" { (expression_statement "local_80[0x2c] = local_88;" (assignment_expression "local_80[0x2c] = local_88" (subscript_expression "local_80[0x2c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "FUN_0011c238(lVar2,param_2);" (call_expression "FUN_0011c238(lVar2,param_2)" identifier (argument_list "(lVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "FUN_0011c4af(lVar2,param_3);" (call_expression "FUN_0011c4af(lVar2,param_3)" identifier (argument_list "(lVar2,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_00119825(lVar2,__s);" (call_expression "FUN_00119825(lVar2,__s)" identifier (argument_list "(lVar2,__s)" ( identifier , identifier ))) ;) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT )))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ( IDENT , IDENT , (binary_expression IDENT != LIT) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression * IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == BOOL)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , LIT , (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT , IDENT , (pointer_expression * IDENT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == BOOL)) ))) << LIT) | LIT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT , IDENT )))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT , IDENT ))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT , IDENT , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) + LIT) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) - IDENT) )))) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) , (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) )))) = LIT) ;) })) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) , LIT , IDENT , (binary_expression IDENT >> LIT) ))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , LIT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00175a0b(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" (identifier "FUN_00175a0b") (parameter_list "(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  ulong uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  long *plVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  undefined8 uVar14;\n  void *__s;\n  long lVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  bool bVar17;\n  undefined8 local_118;\n  uint local_f0;\n  short local_e8;\n  int local_e4;\n  long local_d8;\n  int local_c8;\n  int local_c4;\n  int local_c0;\n  int local_90;\n  int local_8c;\n  long local_88;\n  long *local_80;\n  long *local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_90 = 0;\n  local_8c = 0;\n  local_88 = 0;\n  local_80 = (long *)0x0;\n  lVar2 = *param_1;\n  __s = (void *)0x0;\n  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;\n  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);\n  lVar16 = plVar10[3];\n  bVar17 = true;\n  if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }\n  iVar5 = FUN_001684fe(param_1,plVar10);\n  __s = (void *)0x0;\n  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;\n  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);\n  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));\n  if (iVar6 == 1) goto LAB_00175a84;\n  iVar1 = *(int *)((long)param_1 + 0x34);\n  *(int *)((long)param_1 + 0x34) = iVar1 + 1;\n  *(int *)(param_2 + 0x48) = iVar1;\n  lVar12 = plVar10[2];\n  local_f0 = 0;\n  if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }\n  if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }\n  lVar12 = FUN_00121a1e(param_1);\n  __s = (void *)0x0;\n  if (lVar12 == 0) goto LAB_00175a84;\n  if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }\n  FUN_00152f68(param_1,bVar17,iVar5);\n  if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_78 = param_1;\n  local_70 = param_2;\n  iVar7 = FUN_0012ce42(&local_78,param_3);\n  __s = (void *)0x0;\n  if (iVar7 != 0) goto LAB_00175a84;\n  local_e4 = 0;\n  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }\n  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }\n  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }\n  if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }\nLAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }\n  FUN_0011c238(lVar2,param_2);\n  FUN_0011c4af(lVar2,param_3);\n  FUN_00119825(lVar2,__s);\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "undefined8 local_118;" (type_identifier "undefined8") (identifier "local_118") (; ";")) (declaration "uint local_f0;" (type_identifier "uint") (identifier "local_f0") (; ";")) (declaration "short local_e8;" (sized_type_specifier "short" (short "short")) (identifier "local_e8") (; ";")) (declaration "int local_e4;" (primitive_type "int") (identifier "local_e4") (; ";")) (declaration "long local_d8;" (sized_type_specifier "long" (long "long")) (identifier "local_d8") (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "int local_c0;" (primitive_type "int") (identifier "local_c0") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "long *local_80;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "long *local_78;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "long local_70;" (sized_type_specifier "long" (long "long")) (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "ulong local_50;" (type_identifier "ulong") (identifier "local_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (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_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" (identifier "local_80") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" (identifier "lVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;" (if "if") (parenthesized_expression "((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0))" (( "(") (binary_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||\n     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" (parenthesized_expression "(((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0'))" (( "(") (binary_expression "((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')" (parenthesized_expression "((int)param_1[6] != 0)" (( "(") (binary_expression "(int)param_1[6] != 0" (cast_expression "(int)param_1[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(lVar2 + 0x61) != '\0')" (( "(") (binary_expression "*(char *)(lVar2 + 0x61) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x61)" (* "*") (cast_expression "(char *)(lVar2 + 0x61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x61)" (( "(") (binary_expression "lVar2 + 0x61" (identifier "lVar2") (+ "+") (number_literal "0x61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)" (( "(") (comma_expression "plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0" (assignment_expression "plVar10 = (long *)FUN_00174d5c()" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_00174d5c()" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00174d5c()" (identifier "FUN_00174d5c") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "plVar10 == (long *)0x0" (identifier "plVar10") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (expression_statement "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);" (assignment_expression "lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0)" (identifier "lVar11") (= "=") (call_expression "FUN_00111fa0(param_1,plVar10,0x7e,0,0)" (identifier "FUN_00111fa0") (argument_list "(param_1,plVar10,0x7e,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (number_literal "0x7e") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar16 = plVar10[3];" (assignment_expression "lVar16 = plVar10[3]" (identifier "lVar16") (= "=") (subscript_expression "plVar10[3]" (identifier "plVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" (identifier "bVar17") (= "=") (true "true")) (; ";")) (if_statement "if (lVar11 == 0) {\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = FUN_001116f3(param_1,plVar10,0,0);\n    bVar17 = iVar5 != 0;\n  }" ({ "{") (expression_statement "iVar5 = FUN_001116f3(param_1,plVar10,0,0);" (assignment_expression "iVar5 = FUN_001116f3(param_1,plVar10,0,0)" (identifier "iVar5") (= "=") (call_expression "FUN_001116f3(param_1,plVar10,0,0)" (identifier "FUN_001116f3") (argument_list "(param_1,plVar10,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "bVar17 = iVar5 != 0;" (assignment_expression "bVar17 = iVar5 != 0" (identifier "bVar17") (= "=") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_001684fe(param_1,plVar10);" (assignment_expression "iVar5 = FUN_001684fe(param_1,plVar10)" (identifier "iVar5") (= "=") (call_expression "FUN_001684fe(param_1,plVar10)" (identifier "FUN_001684fe") (argument_list "(param_1,plVar10)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") () ")")))) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))\n  goto LAB_00175a84;" (if "if") (parenthesized_expression "((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))" (( "(") (binary_expression "(iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0)" (( "(") (comma_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0" (assignment_expression "iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e937(param_1,plVar10,lVar11 != 0)" (identifier "FUN_0012e937") (argument_list "(param_1,plVar10,lVar11 != 0)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (expression_statement "iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);" (assignment_expression "iVar5 = FUN_00111b49(lVar2,plVar10[0xe])" (identifier "iVar5") (= "=") (call_expression "FUN_00111b49(lVar2,plVar10[0xe])" (identifier "FUN_00111b49") (argument_list "(lVar2,plVar10[0xe])" (( "(") (identifier "lVar2") (, ",") (subscript_expression "plVar10[0xe]" (identifier "plVar10") ([ "[") (number_literal "0xe") (] "]")) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));" (assignment_expression "iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" (identifier "iVar6") (= "=") (call_expression "FUN_0012ca50(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" (identifier "FUN_0012ca50") (argument_list "(param_1,9,*plVar10,0,\n                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)))" (( "(") (identifier "param_1") (, ",") (number_literal "9") (, ",") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" (* "*") (cast_expression "(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20))" (( "(") (binary_expression "(long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)" (binary_expression "(long)iVar5 * 0x20" (cast_expression "(long)iVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar5")) (* "*") (number_literal "0x20")) (+ "+") (pointer_expression "*(long *)(lVar2 + 0x20)" (* "*") (cast_expression "(long *)(lVar2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")"))))) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar6 == 1) goto LAB_00175a84;" (if "if") (parenthesized_expression "(iVar6 == 1)" (( "(") (binary_expression "iVar6 == 1" (identifier "iVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (expression_statement "iVar1 = *(int *)((long)param_1 + 0x34);" (assignment_expression "iVar1 = *(int *)((long)param_1 + 0x34)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(int *)((long)param_1 + 0x34) = iVar1 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = iVar1 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_2 + 0x48) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x48) = iVar1" (pointer_expression "*(int *)(param_2 + 0x48)" (* "*") (cast_expression "(int *)(param_2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "lVar12 = plVar10[2];" (assignment_expression "lVar12 = plVar10[2]" (identifier "lVar12") (= "=") (subscript_expression "plVar10[2]" (identifier "plVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar12 != 0) {\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" (if "if") (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_f0 = 0;\n    do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);\n  }" ({ "{") (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    } while (lVar12 != 0);" (do "do") (compound_statement "{\n      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;\n      lVar12 = *(long *)(lVar12 + 0x28);\n      local_f0 = local_f0 + 1;\n    }" ({ "{") (expression_statement "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "*(int *)((long)param_1 + 0x34) + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar12 = *(long *)(lVar12 + 0x28);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x28)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(lVar12 + 0x28)" (* "*") (cast_expression "(long *)(lVar12 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x28)" (( "(") (binary_expression "lVar12 + 0x28" (identifier "lVar12") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_f0 = local_f0 + 1;" (assignment_expression "local_f0 = local_f0 + 1" (identifier "local_f0") (= "=") (binary_expression "local_f0 + 1" (identifier "local_f0") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (lVar16 != 0) {\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_88 = param_1[0x2c];\n    param_1[0x2c] = *plVar10;\n    local_80 = param_1;\n  }" ({ "{") (expression_statement "local_88 = param_1[0x2c];" (assignment_expression "local_88 = param_1[0x2c]" (identifier "local_88") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (expression_statement "param_1[0x2c] = *plVar10;" (assignment_expression "param_1[0x2c] = *plVar10" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (pointer_expression "*plVar10" (* "*") (identifier "plVar10"))) (; ";")) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" (identifier "local_80") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "lVar12 = FUN_00121a1e(param_1);" (assignment_expression "lVar12 = FUN_00121a1e(param_1)" (identifier "lVar12") (= "=") (call_expression "FUN_00121a1e(param_1)" (identifier "FUN_00121a1e") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (lVar12 == 0) goto LAB_00175a84;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (if_statement "if (*(char *)((long)param_1 + 0x1e) == '\0') {\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" (if "if") (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" (( "(") (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" (* "*") (cast_expression "(char *)((long)param_1 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x1e)" (( "(") (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;\n  }" ({ "{") (expression_statement "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;" (assignment_expression "*(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" (* "*") (cast_expression "(byte *)(lVar12 + 0xc6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0xc6)" (( "(") (binary_expression "lVar12 + 0xc6" (identifier "lVar12") (+ "+") (number_literal "0xc6")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar12 + 0xc6) | 0x10" (pointer_expression "*(byte *)(lVar12 + 0xc6)" (* "*") (cast_expression "(byte *)(lVar12 + 0xc6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0xc6)" (( "(") (binary_expression "lVar12 + 0xc6" (identifier "lVar12") (+ "+") (number_literal "0xc6")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "FUN_00152f68(param_1,bVar17,iVar5);" (call_expression "FUN_00152f68(param_1,bVar17,iVar5)" (identifier "FUN_00152f68") (argument_list "(param_1,bVar17,iVar5)" (( "(") (identifier "param_1") (, ",") (identifier "bVar17") (, ",") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (lVar16 != 0) {\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);\n    local_90 = iVar1;\n    local_8c = iVar1;\n  }" ({ "{") (expression_statement "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);" (call_expression "FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1)" (identifier "FUN_00168048") (argument_list "(param_1,plVar10,param_3,param_4,param_5,iVar1)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "local_90 = iVar1;" (assignment_expression "local_90 = iVar1" (identifier "local_90") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "local_8c = iVar1;" (assignment_expression "local_8c = iVar1" (identifier "local_8c") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" (identifier "local_78") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" (identifier "local_70") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar7 = FUN_0012ce42(&local_78,param_3);" (assignment_expression "iVar7 = FUN_0012ce42(&local_78,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_0012ce42(&local_78,param_3)" (identifier "FUN_0012ce42") (argument_list "(&local_78,param_3)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00175a84;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)) {\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" (if "if") (parenthesized_expression "((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0))" (( "(") (binary_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&\n     (param_1[0x15] == 0)" (parenthesized_expression "(((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0'))" (( "(") (binary_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')" (parenthesized_expression "((*(byte *)(lVar2 + 0x34) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x34) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x34) & 1)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x34) & 1" (pointer_expression "*(byte *)(lVar2 + 0x34)" (* "*") (cast_expression "(byte *)(lVar2 + 0x34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x34)" (( "(") (binary_expression "lVar2 + 0x34" (identifier "lVar2") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" (( "(") (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" (* "*") (cast_expression "(char *)((long)param_1 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x1e)" (( "(") (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x15] == 0)" (( "(") (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_e4 = (int)param_1[7] + 1;\n    *(int *)(param_1 + 7) = local_e4;\n    FUN_001207c0(lVar12,0x45,0,local_e4);\n  }" ({ "{") (expression_statement "local_e4 = (int)param_1[7] + 1;" (assignment_expression "local_e4 = (int)param_1[7] + 1" (identifier "local_e4") (= "=") (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 7) = local_e4;" (assignment_expression "*(int *)(param_1 + 7) = local_e4" (pointer_expression "*(int *)(param_1 + 7)" (* "*") (cast_expression "(int *)(param_1 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "local_e4")) (; ";")) (expression_statement "FUN_001207c0(lVar12,0x45,0,local_e4);" (call_expression "FUN_001207c0(lVar12,0x45,0,local_e4)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x45,0,local_e4)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x45") (, ",") (number_literal "0") (, ",") (identifier "local_e4") () ")"))) (; ";")) (} "}"))) (if_statement "if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))\n  {\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }\n  else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" (if "if") (parenthesized_expression "(((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))" (( "(") (binary_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0 && bVar17 == false) && (iVar6 == 0))" (( "(") (binary_expression "(param_3 == 0 && bVar17 == false) && (iVar6 == 0)" (parenthesized_expression "(param_3 == 0 && bVar17 == false)" (( "(") (binary_expression "param_3 == 0 && bVar17 == false" (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "bVar17 == false" (identifier "bVar17") (== "==") (false "false"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" (( "(") (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" (* "*") (cast_expression "(int *)((long)plVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar10 + 0x54)" (( "(") (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }\n    lVar16 = plVar10[2];\n    if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }\n  }" ({ "{") (expression_statement "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);" (call_expression "FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10)" (identifier "FUN_0012046c") (argument_list "(param_1,iVar5,(int)plVar10[7],1,*plVar10)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (cast_expression "(int)plVar10[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar10[7]" (identifier "plVar10") ([ "[") (number_literal "7") (] "]"))) (, ",") (number_literal "1") (, ",") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) () ")"))) (; ";")) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" (if "if") (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" (( "(") (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" (* "*") (cast_expression "(byte *)(plVar10 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar10 + 8)" (( "(") (binary_expression "plVar10 + 8" (identifier "plVar10") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar6 = -1;\n      if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }\n      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);\n    }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_e4 != 0) {\n        iVar6 = local_e4;\n      }" (if "if") (parenthesized_expression "(local_e4 != 0)" (( "(") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = local_e4;\n      }" ({ "{") (expression_statement "iVar6 = local_e4;" (assignment_expression "iVar6 = local_e4" (identifier "iVar6") (= "=") (identifier "local_e4")) (; ";")) (} "}"))) (expression_statement "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);" (call_expression "FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" (identifier "FUN_00121136") (argument_list "(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x89") (, ",") (cast_expression "(int)plVar10[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar10[7]" (identifier "plVar10") ([ "[") (number_literal "7") (] "]"))) (, ",") (identifier "iVar5") (, ",") (identifier "iVar6") (, ",") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (, ",") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar16 = plVar10[2];" (assignment_expression "lVar16 = plVar10[2]" (identifier "lVar16") (= "=") (subscript_expression "plVar10[2]" (identifier "plVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (lVar16 == 0) {\n      __s = (void *)0x0;\n    }\n    else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      __s = (void *)0x0;\n    }" ({ "{") (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" (else "else") (compound_statement "{\n      do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);\n      __s = (void *)0x0;\n    }" ({ "{") (do_statement "do {\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      } while (lVar16 != 0);" (do "do") (compound_statement "{\n        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);\n        lVar16 = *(long *)(lVar16 + 0x28);\n      }" ({ "{") (expression_statement "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);" (call_expression "FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x89") (, ",") (pointer_expression "*(undefined4 *)(lVar16 + 0x58)" (* "*") (cast_expression "(undefined4 *)(lVar16 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x58)" (( "(") (binary_expression "lVar16 + 0x58" (identifier "lVar16") (+ "+") (number_literal "0x58")) () ")")))) (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = local_50 & 0x40;\n    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }\n    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);\n    __s = (void *)0x0;\n    if (lVar13 == 0) goto LAB_00175a84;\n    lVar3 = *(long *)(lVar13 + 0x28);\n    uVar8 = (uint)*(byte *)(lVar13 + 0x42);\n    if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }\n    if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }\n    if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }\n    if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }\n  }" ({ "{") (expression_statement "uVar4 = local_50 & 0x40;" (assignment_expression "uVar4 = local_50 & 0x40" (identifier "uVar4") (= "=") (binary_expression "local_50 & 0x40" (identifier "local_50") (& "&") (number_literal "0x40"))) (; ";")) (if_statement "if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }\n    else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(plVar10 + 8) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(plVar10 + 8) & 0x80) == 0" (parenthesized_expression "(*(byte *)(plVar10 + 8) & 0x80)" (( "(") (binary_expression "*(byte *)(plVar10 + 8) & 0x80" (pointer_expression "*(byte *)(plVar10 + 8)" (* "*") (cast_expression "(byte *)(plVar10 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar10 + 8)" (( "(") (binary_expression "plVar10 + 8" (identifier "plVar10") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_c4 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = local_c4;\n      FUN_001207c0(lVar12,0x48,0,local_c4);\n      local_e8 = 1;\n      local_d8 = 0;\n      local_c8 = 0;\n      local_c0 = 0;\n      iVar5 = 0;\n    }" ({ "{") (expression_statement "local_c4 = (int)param_1[7] + 1;" (assignment_expression "local_c4 = (int)param_1[7] + 1" (identifier "local_c4") (= "=") (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 7) = local_c4;" (assignment_expression "*(int *)(param_1 + 7) = local_c4" (pointer_expression "*(int *)(param_1 + 7)" (* "*") (cast_expression "(int *)(param_1 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "FUN_001207c0(lVar12,0x48,0,local_c4);" (call_expression "FUN_001207c0(lVar12,0x48,0,local_c4)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x48,0,local_c4)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x48") (, ",") (number_literal "0") (, ",") (identifier "local_c4") () ")"))) (; ";")) (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" (identifier "local_e8") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" (else "else") (compound_statement "{\n      local_d8 = FUN_00111247(plVar10);\n      local_e8 = *(short *)(local_d8 + 0x5e);\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;\n      local_c8 = *(int *)((long)param_1 + 0x34);\n      *(int *)((long)param_1 + 0x34) = local_c8 + 1;\n      local_c0 = FUN_001207c0(lVar12,100);\n      FUN_0013744b(param_1,local_d8);\n      local_c4 = 0;\n    }" ({ "{") (expression_statement "local_d8 = FUN_00111247(plVar10);" (assignment_expression "local_d8 = FUN_00111247(plVar10)" (identifier "local_d8") (= "=") (call_expression "FUN_00111247(plVar10)" (identifier "FUN_00111247") (argument_list "(plVar10)" (( "(") (identifier "plVar10") () ")")))) (; ";")) (expression_statement "local_e8 = *(short *)(local_d8 + 0x5e);" (assignment_expression "local_e8 = *(short *)(local_d8 + 0x5e)" (identifier "local_e8") (= "=") (pointer_expression "*(short *)(local_d8 + 0x5e)" (* "*") (cast_expression "(short *)(local_d8 + 0x5e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 0x5e)" (( "(") (binary_expression "local_d8 + 0x5e" (identifier "local_d8") (+ "+") (number_literal "0x5e")) () ")"))))) (; ";")) (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" (identifier "iVar5") (= "=") (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;" (assignment_expression "*(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8" (pointer_expression "*(int *)(param_1 + 7)" (* "*") (cast_expression "(int *)(param_1 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "(int)param_1[7] + (int)local_e8" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (cast_expression "(int)local_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e8")))) (; ";")) (expression_statement "local_c8 = *(int *)((long)param_1 + 0x34);" (assignment_expression "local_c8 = *(int *)((long)param_1 + 0x34)" (identifier "local_c8") (= "=") (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(int *)((long)param_1 + 0x34) = local_c8 + 1;" (assignment_expression "*(int *)((long)param_1 + 0x34) = local_c8 + 1" (pointer_expression "*(int *)((long)param_1 + 0x34)" (* "*") (cast_expression "(int *)((long)param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "local_c8 + 1" (identifier "local_c8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c0 = FUN_001207c0(lVar12,100);" (assignment_expression "local_c0 = FUN_001207c0(lVar12,100)" (identifier "local_c0") (= "=") (call_expression "FUN_001207c0(lVar12,100)" (identifier "FUN_001207c0") (argument_list "(lVar12,100)" (( "(") (identifier "lVar12") (, ",") (number_literal "100") () ")")))) (; ";")) (expression_statement "FUN_0013744b(param_1,local_d8);" (call_expression "FUN_0013744b(param_1,local_d8)" (identifier "FUN_0013744b") (argument_list "(param_1,local_d8)" (( "(") (identifier "param_1") (, ",") (identifier "local_d8") () ")"))) (; ";")) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);" (assignment_expression "lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" (identifier "lVar13") (= "=") (call_expression "FUN_001620c2(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" (identifier "FUN_001620c2") (argument_list "(param_1,param_2,param_3,0,0,\n                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414" (binary_expression "(ushort)(uVar4 == 0 && bVar17 == false) << 3" (call_expression "(ushort)(uVar4 == 0 && bVar17 == false)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar4 == 0 && bVar17 == false)" (( "(") (binary_expression "uVar4 == 0 && bVar17 == false" (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) (&& "&&") (binary_expression "bVar17 == false" (identifier "bVar17") (== "==") (false "false"))) () ")"))) (<< "<<") (number_literal "3")) (| "|") (number_literal "0x414")) (, ",") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (lVar13 == 0) goto LAB_00175a84;" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";"))) (expression_statement "lVar3 = *(long *)(lVar13 + 0x28);" (assignment_expression "lVar3 = *(long *)(lVar13 + 0x28)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar13 + 0x28)" (* "*") (cast_expression "(long *)(lVar13 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x28)" (( "(") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar8 = (uint)*(byte *)(lVar13 + 0x42);" (assignment_expression "uVar8 = (uint)*(byte *)(lVar13 + 0x42)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)(lVar13 + 0x42)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(lVar13 + 0x42)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x42)" (( "(") (binary_expression "lVar13 + 0x42" (identifier "lVar13") (+ "+") (number_literal "0x42")) () ")"))))) (; ";")) (if_statement "if (uVar8 != 1) {\n      FUN_0011158f(param_1);\n    }" (if "if") (parenthesized_expression "(uVar8 != 1)" (( "(") (binary_expression "uVar8 != 1" (identifier "uVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      FUN_0011158f(param_1);\n    }" ({ "{") (expression_statement "FUN_0011158f(param_1);" (call_expression "FUN_0011158f(param_1)" (identifier "FUN_0011158f") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_e4 != 0) {\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" (if "if") (parenthesized_expression "(local_e4 != 0)" (( "(") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001207c0(lVar12,0x52,local_e4,1);\n    }" ({ "{") (expression_statement "FUN_001207c0(lVar12,0x52,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x52,local_e4,1)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x52,local_e4,1)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x52") (, ",") (identifier "local_e4") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_d8 == 0) {\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }\n    else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" (if "if") (parenthesized_expression "(local_d8 == 0)" (( "(") (binary_expression "local_d8 == 0" (identifier "local_d8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = (int)param_1[7] + 1;\n      *(int *)(param_1 + 7) = iVar5;\n      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);\n      if (uVar8 != 0) goto LAB_0017622b;\n      FUN_001207c0(lVar12,0x93,local_c4,iVar5);\n      FUN_00120a54(lVar13);\n      if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }\n      if (uVar8 != 0) goto LAB_001762b7;\n      if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }\n      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;\n      local_118 = FUN_0011203f(lVar2,plVar10);\n      FUN_0011dfb5(param_1,plVar10);\n      FUN_001115a2(param_1);\nLAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);\n      FUN_0010f49a(lVar12,2);\n    }" ({ "{") (expression_statement "iVar5 = (int)param_1[7] + 1;" (assignment_expression "iVar5 = (int)param_1[7] + 1" (identifier "iVar5") (= "=") (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 7) = iVar5;" (assignment_expression "*(int *)(param_1 + 7) = iVar5" (pointer_expression "*(int *)(param_1 + 7)" (* "*") (cast_expression "(int *)(param_1 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5)" (identifier "FUN_0015bb5b") (argument_list "(lVar12,plVar10,iVar1,0xffffffff,iVar5)" (( "(") (identifier "lVar12") (, ",") (identifier "plVar10") (, ",") (identifier "iVar1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (uVar8 != 0) goto LAB_0017622b;" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017622b;" (goto "goto") (statement_identifier "LAB_0017622b") (; ";"))) (expression_statement "FUN_001207c0(lVar12,0x93,local_c4,iVar5);" (call_expression "FUN_001207c0(lVar12,0x93,local_c4,iVar5)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x93,local_c4,iVar5)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x93") (, ",") (identifier "local_c4") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" (identifier "FUN_00120a54") (argument_list "(lVar13)" (( "(") (identifier "lVar13") () ")"))) (; ";")) (if_statement "if (lVar16 == 0) {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }\n      else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n      }" ({ "{") (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" (identifier "local_e8") (= "=") (number_literal "1")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" (identifier "local_f0") (= "=") (identifier "uVar8")) (; ";")) (labeled_statement "LAB_001761b5:\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (statement_identifier "LAB_001761b5") (: ":") (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" (identifier "FUN_0013760c") (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (number_literal "0x61") (, ",") (number_literal "8") (, ",") (identifier "iVar1") (, ",") (identifier "__s") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (pointer_expression "&local_8c" (& "&") (identifier "local_8c")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" (else "else") (compound_statement "{\n        local_e8 = 1;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\n      }" ({ "{") (expression_statement "local_e8 = 1;" (assignment_expression "local_e8 = 1" (identifier "local_e8") (= "=") (number_literal "1")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" (identifier "local_f0") (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (if_statement "if (uVar8 != 0) goto LAB_001762b7;" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001762b7;" (goto "goto") (statement_identifier "LAB_001762b7") (; ";"))) (if_statement "if (local_d8 == 0) {\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }\n      else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" (if "if") (parenthesized_expression "(local_d8 == 0)" (( "(") (binary_expression "local_d8 == 0" (identifier "local_d8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);\n      }" ({ "{") (expression_statement "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);" (assignment_expression "iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" (identifier "iVar6") (= "=") (call_expression "FUN_00120767(lVar12,0x2a,local_c4,0,iVar5)" (identifier "FUN_00120767") (argument_list "(lVar12,0x2a,local_c4,0,iVar5)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x2a") (, ",") (identifier "local_c4") (, ",") (number_literal "0") (, ",") (identifier "iVar5") () ")")))) (; ";")) (} "}")) (else_clause "else {\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" (else "else") (compound_statement "{\nLAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);\n        if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }\n      }" ({ "{") (labeled_statement "LAB_00175f34:\n        iVar6 = FUN_00120894(lVar12,0x25,local_c8);" (statement_identifier "LAB_00175f34") (: ":") (expression_statement "iVar6 = FUN_00120894(lVar12,0x25,local_c8);" (assignment_expression "iVar6 = FUN_00120894(lVar12,0x25,local_c8)" (identifier "iVar6") (= "=") (call_expression "FUN_00120894(lVar12,0x25,local_c8)" (identifier "FUN_00120894") (argument_list "(lVar12,0x25,local_c8)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x25") (, ",") (identifier "local_c8") () ")")))) (; ";"))) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) {\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }\n        else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" (if "if") (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" (( "(") (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" (* "*") (cast_expression "(int *)((long)plVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar10 + 0x54)" (( "(") (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);\n        }" ({ "{") (expression_statement "FUN_001207c0(lVar12,0x7e,local_c8,iVar5);" (call_expression "FUN_001207c0(lVar12,0x7e,local_c8,iVar5)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x7e,local_c8,iVar5)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x7e") (, ",") (identifier "local_c8") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" (else "else") (compound_statement "{\n          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);\n        }" ({ "{") (expression_statement "FUN_00120767(lVar12,0x59,local_c8,0,iVar5);" (call_expression "FUN_00120767(lVar12,0x59,local_c8,0,iVar5)" (identifier "FUN_00120767") (argument_list "(lVar12,0x59,local_c8,0,iVar5)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x59") (, ",") (identifier "local_c8") (, ",") (number_literal "0") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;" (if "if") (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) == 0)" (( "(") (binary_expression "*(int *)((long)plVar10 + 0x54) == 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" (* "*") (cast_expression "(int *)((long)plVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar10 + 0x54)" (( "(") (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00175f7d;" (goto "goto") (statement_identifier "LAB_00175f7d") (; ";"))) (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" (identifier "local_118") (= "=") (call_expression "FUN_0011203f(lVar2,plVar10)" (identifier "FUN_0011203f") (argument_list "(lVar2,plVar10)" (( "(") (identifier "lVar2") (, ",") (identifier "plVar10") () ")")))) (; ";")) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" (identifier "FUN_0011dfb5") (argument_list "(param_1,plVar10)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") () ")"))) (; ";")) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" (identifier "FUN_001115a2") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (labeled_statement "LAB_001764bf:\n      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" (statement_identifier "LAB_001764bf") (: ":") (expression_statement "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);" (call_expression "FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" (identifier "FUN_00121136") (argument_list "(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4)" (( "(") (identifier "lVar12") (, ",") (number_literal "10") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "iVar5") (, ",") (identifier "local_118") (, ",") (number_literal "0xfffffffffffffff4") () ")"))) (; ";"))) (expression_statement "FUN_0010f49a(lVar12,2);" (call_expression "FUN_0010f49a(lVar12,2)" (identifier "FUN_0010f49a") (argument_list "(lVar12,2)" (( "(") (identifier "lVar12") (, ",") (number_literal "2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" (else "else") (compound_statement "{\n      iVar6 = (int)local_e8;\n      if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }\n      if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }\nLAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }\n      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }\nLAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);\n    }" ({ "{") (expression_statement "iVar6 = (int)local_e8;" (assignment_expression "iVar6 = (int)local_e8" (identifier "iVar6") (= "=") (cast_expression "(int)local_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e8"))) (; ";")) (if_statement "if (0 < local_e8) {\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" (if "if") (parenthesized_expression "(0 < local_e8)" (( "(") (binary_expression "0 < local_e8" (number_literal "0") (< "<") (identifier "local_e8")) () ")")) (compound_statement "{\n        lVar15 = 0;\n        do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);\n      }" ({ "{") (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        } while ((ulong)(iVar6 - 1) + 1 != lVar15);" (do "do") (compound_statement "{\n          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);\n          lVar15 = lVar15 + 1;\n        }" ({ "{") (expression_statement "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15);" (call_expression "FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" (identifier "FUN_0015bb5b") (argument_list "(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),\n                       iVar5 + (int)lVar15)" (( "(") (identifier "lVar12") (, ",") (identifier "plVar10") (, ",") (identifier "iVar1") (, ",") (cast_expression "(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" (* "*") (cast_expression "(short *)(*(long *)(local_d8 + 8) + lVar15 * 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(local_d8 + 8) + lVar15 * 2)" (( "(") (binary_expression "*(long *)(local_d8 + 8) + lVar15 * 2" (pointer_expression "*(long *)(local_d8 + 8)" (* "*") (cast_expression "(long *)(local_d8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 8)" (( "(") (binary_expression "local_d8 + 8" (identifier "local_d8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "lVar15 * 2" (identifier "lVar15") (* "*") (number_literal "2"))) () ")"))))) (, ",") (binary_expression "iVar5 + (int)lVar15" (identifier "iVar5") (+ "+") (cast_expression "(int)lVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar15"))) () ")"))) (; ";")) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + 1" (identifier "lVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ulong)(iVar6 - 1) + 1 != lVar15)" (( "(") (binary_expression "(ulong)(iVar6 - 1) + 1 != lVar15" (binary_expression "(ulong)(iVar6 - 1) + 1" (call_expression "(ulong)(iVar6 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar6 - 1)" (( "(") (binary_expression "iVar6 - 1" (identifier "iVar6") (- "-") (number_literal "1")) () ")"))) (+ "+") (number_literal "1")) (!= "!=") (identifier "lVar15")) () ")")) (; ";")) (} "}"))) (if_statement "if (uVar8 == 0) {\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }\n      else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = (int)param_1[7] + 1;\n        *(int *)(param_1 + 7) = iVar7;\n        uVar14 = FUN_001349e4(*param_1,local_d8);\n        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);\n        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);\n        FUN_00120a54(lVar13);\n        iVar5 = iVar7;\n        if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }\n        local_e8 = 0;\n        __s = (void *)0x0;\n        local_f0 = uVar8;\nLAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;\n        uVar9 = FUN_0012083c(lVar12,0x11);\n        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);\n        FUN_0010f508(lVar12,uVar9);\n      }" ({ "{") (expression_statement "iVar7 = (int)param_1[7] + 1;" (assignment_expression "iVar7 = (int)param_1[7] + 1" (identifier "iVar7") (= "=") (binary_expression "(int)param_1[7] + 1" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 7) = iVar7;" (assignment_expression "*(int *)(param_1 + 7) = iVar7" (pointer_expression "*(int *)(param_1 + 7)" (* "*") (cast_expression "(int *)(param_1 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar14 = FUN_001349e4(*param_1,local_d8);" (assignment_expression "uVar14 = FUN_001349e4(*param_1,local_d8)" (identifier "uVar14") (= "=") (call_expression "FUN_001349e4(*param_1,local_d8)" (identifier "FUN_001349e4") (argument_list "(*param_1,local_d8)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "local_d8") () ")")))) (; ";")) (expression_statement "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);" (call_expression "FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" (identifier "FUN_00121136") (argument_list "(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x5b") (, ",") (identifier "iVar5") (, ",") (identifier "iVar6") (, ",") (identifier "iVar7") (, ",") (identifier "uVar14") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);" (call_expression "FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" (identifier "FUN_0012085a") (argument_list "(lVar12,0x82,local_c8,iVar7,iVar5,iVar6)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x82") (, ",") (identifier "local_c8") (, ",") (identifier "iVar7") (, ",") (identifier "iVar5") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" (identifier "FUN_00120a54") (argument_list "(lVar13)" (( "(") (identifier "lVar13") () ")"))) (; ";")) (expression_statement "iVar5 = iVar7;" (assignment_expression "iVar5 = iVar7" (identifier "iVar5") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (lVar16 != 0) {\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_e8 = 0;\n          __s = (void *)0x0;\n          local_f0 = uVar8;\n          goto LAB_00175f34;\n        }" ({ "{") (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" (identifier "local_f0") (= "=") (identifier "uVar8")) (; ";")) (goto_statement "goto LAB_00175f34;" (goto "goto") (statement_identifier "LAB_00175f34") (; ";")) (} "}"))) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = uVar8;" (assignment_expression "local_f0 = uVar8" (identifier "local_f0") (= "=") (identifier "uVar8")) (; ";")) (labeled_statement "LAB_00176334:\n        if (uVar8 != 2) goto LAB_001761b5;" (statement_identifier "LAB_00176334") (: ":") (if_statement "if (uVar8 != 2) goto LAB_001761b5;" (if "if") (parenthesized_expression "(uVar8 != 2)" (( "(") (binary_expression "uVar8 != 2" (identifier "uVar8") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_001761b5;" (goto "goto") (statement_identifier "LAB_001761b5") (; ";")))) (expression_statement "uVar9 = FUN_0012083c(lVar12,0x11);" (assignment_expression "uVar9 = FUN_0012083c(lVar12,0x11)" (identifier "uVar9") (= "=") (call_expression "FUN_0012083c(lVar12,0x11)" (identifier "FUN_0012083c") (argument_list "(lVar12,0x11)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x11") () ")")))) (; ";")) (expression_statement "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);" (call_expression "FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" (identifier "FUN_0013760c") (argument_list "(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (number_literal "0x61") (, ",") (number_literal "8") (, ",") (identifier "iVar1") (, ",") (identifier "__s") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (pointer_expression "&local_8c" (& "&") (identifier "local_8c")) () ")"))) (; ";")) (expression_statement "FUN_0010f508(lVar12,uVar9);" (call_expression "FUN_0010f508(lVar12,uVar9)" (identifier "FUN_0010f508") (argument_list "(lVar12,uVar9)" (( "(") (identifier "lVar12") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" (else "else") (compound_statement "{\nLAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));\n        if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }\n        memset(__s,1,(long)(int)(local_f0 + 1));\n        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;\n        if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }\n        if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }\n        if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }\n        local_f0 = *(int *)((long)param_1 + 0x44) - 1;\n        *(uint *)((long)param_1 + 0x44) = local_f0;\n        if (lVar16 == 0) goto LAB_00176334;\n      }" ({ "{") (labeled_statement "LAB_0017622b:\n        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" (statement_identifier "LAB_0017622b") (: ":") (expression_statement "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));" (assignment_expression "__s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" (identifier "__s") (= "=") (cast_expression "(void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2))" (identifier "FUN_0011efd7") (argument_list "(lVar2,(long)(int)(local_f0 + 2))" (( "(") (identifier "lVar2") (, ",") (cast_expression "(long)(int)(local_f0 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(local_f0 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_f0 + 2)" (( "(") (binary_expression "local_f0 + 2" (identifier "local_f0") (+ "+") (number_literal "2")) () ")")))) () ")"))))) (; ";"))) (if_statement "if (__s == (void *)0x0) {\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" (if "if") (parenthesized_expression "(__s == (void *)0x0)" (( "(") (binary_expression "__s == (void *)0x0" (identifier "__s") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_00120a54(lVar13);\n          goto LAB_00175a84;\n        }" ({ "{") (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" (identifier "FUN_00120a54") (argument_list "(lVar13)" (( "(") (identifier "lVar13") () ")"))) (; ";")) (goto_statement "goto LAB_00175a84;" (goto "goto") (statement_identifier "LAB_00175a84") (; ";")) (} "}"))) (expression_statement "memset(__s,1,(long)(int)(local_f0 + 1));" (call_expression "memset(__s,1,(long)(int)(local_f0 + 1))" (identifier "memset") (argument_list "(__s,1,(long)(int)(local_f0 + 1))" (( "(") (identifier "__s") (, ",") (number_literal "1") (, ",") (cast_expression "(long)(int)(local_f0 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(local_f0 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_f0 + 1)" (( "(") (binary_expression "local_f0 + 1" (identifier "local_f0") (+ "+") (number_literal "1")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" (* "*") (cast_expression "(undefined1 *)((long)__s + (long)(int)local_f0 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)(int)local_f0 + 1)" (( "(") (binary_expression "(long)__s + (long)(int)local_f0 + 1" (binary_expression "(long)__s + (long)(int)local_f0" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (cast_expression "(long)(int)local_f0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")))) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" (if "if") (parenthesized_expression "(-1 < (int)lVar3)" (( "(") (binary_expression "-1 < (int)lVar3" (number_literal "-1") (< "<") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3"))) () ")")) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;\n        }" ({ "{") (expression_statement "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" (* "*") (cast_expression "(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)((int)lVar3 - iVar1))" (( "(") (binary_expression "(long)__s + (long)((int)lVar3 - iVar1)" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (cast_expression "(long)((int)lVar3 - iVar1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((int)lVar3 - iVar1)" (( "(") (binary_expression "(int)lVar3 - iVar1" (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")) (- "-") (identifier "iVar1")) () ")")))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (-1 < lVar3) {\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" (if "if") (parenthesized_expression "(-1 < lVar3)" (( "(") (binary_expression "-1 < lVar3" (number_literal "-1") (< "<") (identifier "lVar3")) () ")")) (compound_statement "{\n          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;\n        }" ({ "{") (expression_statement "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;" (assignment_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0" (pointer_expression "*(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" (* "*") (cast_expression "(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1))" (( "(") (binary_expression "(long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (cast_expression "(long)((int)((ulong)lVar3 >> 0x20) - iVar1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((int)((ulong)lVar3 >> 0x20) - iVar1)" (( "(") (binary_expression "(int)((ulong)lVar3 >> 0x20) - iVar1" (cast_expression "(int)((ulong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulong)lVar3 >> 0x20" (cast_expression "(ulong)lVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (- "-") (identifier "iVar1")) () ")")))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (local_c0 != 0) {\n          FUN_0011aaa4(lVar12,local_c0);\n        }" (if "if") (parenthesized_expression "(local_c0 != 0)" (( "(") (binary_expression "local_c0 != 0" (identifier "local_c0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0011aaa4(lVar12,local_c0);\n        }" ({ "{") (expression_statement "FUN_0011aaa4(lVar12,local_c0);" (call_expression "FUN_0011aaa4(lVar12,local_c0)" (identifier "FUN_0011aaa4") (argument_list "(lVar12,local_c0)" (( "(") (identifier "lVar12") (, ",") (identifier "local_c0") () ")"))) (; ";")) (} "}"))) (expression_statement "local_f0 = *(int *)((long)param_1 + 0x44) - 1;" (assignment_expression "local_f0 = *(int *)((long)param_1 + 0x44) - 1" (identifier "local_f0") (= "=") (binary_expression "*(int *)((long)param_1 + 0x44) - 1" (pointer_expression "*(int *)((long)param_1 + 0x44)" (* "*") (cast_expression "(int *)((long)param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x44)" (( "(") (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)((long)param_1 + 0x44) = local_f0;" (assignment_expression "*(uint *)((long)param_1 + 0x44) = local_f0" (pointer_expression "*(uint *)((long)param_1 + 0x44)" (* "*") (cast_expression "(uint *)((long)param_1 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x44)" (( "(") (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (if_statement "if (lVar16 == 0) goto LAB_00176334;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00176334;" (goto "goto") (statement_identifier "LAB_00176334") (; ";"))) (} "}")))) (labeled_statement "LAB_001762b7:\n      if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" (statement_identifier "LAB_001762b7") (: ":") (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) {\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" (if "if") (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" (( "(") (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" (* "*") (cast_expression "(int *)((long)plVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar10 + 0x54)" (( "(") (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);\n        FUN_0011dfb5(param_1,plVar10);\n        FUN_001115a2(param_1);\n        iVar6 = 0;\n        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }\n        goto LAB_001764bf;\n      }" ({ "{") (labeled_statement "LAB_001763f0:\n        local_118 = FUN_0011203f(lVar2,plVar10);" (statement_identifier "LAB_001763f0") (: ":") (expression_statement "local_118 = FUN_0011203f(lVar2,plVar10);" (assignment_expression "local_118 = FUN_0011203f(lVar2,plVar10)" (identifier "local_118") (= "=") (call_expression "FUN_0011203f(lVar2,plVar10)" (identifier "FUN_0011203f") (argument_list "(lVar2,plVar10)" (( "(") (identifier "lVar2") (, ",") (identifier "plVar10") () ")")))) (; ";"))) (expression_statement "FUN_0011dfb5(param_1,plVar10);" (call_expression "FUN_0011dfb5(param_1,plVar10)" (identifier "FUN_0011dfb5") (argument_list "(param_1,plVar10)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") () ")"))) (; ";")) (expression_statement "FUN_001115a2(param_1);" (call_expression "FUN_001115a2(param_1)" (identifier "FUN_001115a2") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" (if "if") (parenthesized_expression "((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0))" (( "(") (binary_expression "(uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" (parenthesized_expression "(uVar8 == 1)" (( "(") (binary_expression "uVar8 == 1" (identifier "uVar8") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)" (( "(") (comma_expression "FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0" (call_expression "FUN_00120894(lVar12,0x74,iVar1)" (identifier "FUN_00120894") (argument_list "(lVar12,0x74,iVar1)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x74") (, ",") (identifier "iVar1") () ")"))) (, ",") (binary_expression "param_1[0x14] == 0" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)(param_1 + 4) = 0;\n        }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_001764bf;" (goto "goto") (statement_identifier "LAB_001764bf") (; ";")) (} "}")))) (if_statement "if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {\n        iVar6 = 0;\n      }\n      else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" (if "if") (parenthesized_expression "(*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0')" (( "(") (binary_expression "*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0'" (pointer_expression "*(char *)((long)__s + (long)(local_90 - iVar1))" (* "*") (cast_expression "(char *)((long)__s + (long)(local_90 - iVar1))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)(local_90 - iVar1))" (( "(") (binary_expression "(long)__s + (long)(local_90 - iVar1)" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (cast_expression "(long)(local_90 - iVar1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(local_90 - iVar1)" (( "(") (binary_expression "local_90 - iVar1" (identifier "local_90") (- "-") (identifier "iVar1")) () ")")))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" (else "else") (compound_statement "{\n        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);\n        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);" (call_expression "FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" (identifier "FUN_0012085a") (argument_list "(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x1d") (, ",") (identifier "local_90") (, ",") (identifier "local_f0") (, ",") (identifier "iVar5") (, ",") (cast_expression "(int)local_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e8")) () ")"))) (; ";")) (if_statement "if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;" (if "if") (parenthesized_expression "(*(int *)((long)plVar10 + 0x54) != 0)" (( "(") (binary_expression "*(int *)((long)plVar10 + 0x54) != 0" (pointer_expression "*(int *)((long)plVar10 + 0x54)" (* "*") (cast_expression "(int *)((long)plVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar10 + 0x54)" (( "(") (binary_expression "(long)plVar10 + 0x54" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001763f0;" (goto "goto") (statement_identifier "LAB_001763f0") (; ";"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00175f7d:\n      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" (statement_identifier "LAB_00175f7d") (: ":") (expression_statement "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);" (call_expression "FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" (identifier "FUN_00175683") (argument_list "(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,\n                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20)" (( "(") (identifier "param_1") (, ",") (identifier "plVar10") (, ",") (identifier "lVar11") (, ",") (identifier "local_90") (, ",") (identifier "local_8c") (, ",") (identifier "iVar5") (, ",") (cast_expression "(int)local_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e8")) (, ",") (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" (* "*") (cast_expression "(char *)((long)param_1 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x1e)" (( "(") (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (, ",") (number_literal "0xb") (, ",") (identifier "uVar8") (, ",") (binary_expression "lVar3 >> 0x20" (identifier "lVar3") (>> ">>") (number_literal "0x20")) () ")"))) (; ";"))) (} "}")))) (if_statement "if (uVar8 == 0) {\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }\n    else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n    }" ({ "{") (if_statement "if (local_d8 == 0) {\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }\n      else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" (if "if") (parenthesized_expression "(local_d8 == 0)" (( "(") (binary_expression "local_d8 == 0" (identifier "local_d8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00120941(lVar12,iVar6);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" ({ "{") (expression_statement "FUN_00120941(lVar12,iVar6);" (call_expression "FUN_00120941(lVar12,iVar6)" (identifier "FUN_00120941") (argument_list "(lVar12,iVar6)" (( "(") (identifier "lVar12") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" (identifier "FUN_0010f4fb") (argument_list "(lVar12,iVar6)" (( "(") (identifier "lVar12") (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" (else "else") (compound_statement "{\n        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);\n        FUN_0010f4fb(lVar12,iVar6);\n      }" ({ "{") (expression_statement "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);" (call_expression "FUN_001207c0(lVar12,5,local_c8,iVar6 + 1)" (identifier "FUN_001207c0") (argument_list "(lVar12,5,local_c8,iVar6 + 1)" (( "(") (identifier "lVar12") (, ",") (number_literal "5") (, ",") (identifier "local_c8") (, ",") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "FUN_0010f4fb(lVar12,iVar6);" (call_expression "FUN_0010f4fb(lVar12,iVar6)" (identifier "FUN_0010f4fb") (argument_list "(lVar12,iVar6)" (( "(") (identifier "lVar12") (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" (else "else") (compound_statement "{\n      FUN_00120437(lVar12,local_f0);\n      FUN_00120a54(lVar13);\n    }" ({ "{") (expression_statement "FUN_00120437(lVar12,local_f0);" (call_expression "FUN_00120437(lVar12,local_f0)" (identifier "FUN_00120437") (argument_list "(lVar12,local_f0)" (( "(") (identifier "lVar12") (, ",") (identifier "local_f0") () ")"))) (; ";")) (expression_statement "FUN_00120a54(lVar13);" (call_expression "FUN_00120a54(lVar13)" (identifier "FUN_00120a54") (argument_list "(lVar13)" (( "(") (identifier "lVar13") () ")"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {\n    FUN_001375f3(param_1);\n  }" (if "if") (parenthesized_expression "((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0))" (( "(") (binary_expression "(*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)" (parenthesized_expression "(*(char *)((long)param_1 + 0x1e) == '\0')" (( "(") (binary_expression "*(char *)((long)param_1 + 0x1e) == '\0'" (pointer_expression "*(char *)((long)param_1 + 0x1e)" (* "*") (cast_expression "(char *)((long)param_1 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x1e)" (( "(") (binary_expression "(long)param_1 + 0x1e" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1e")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x15] == 0)" (( "(") (binary_expression "param_1[0x15] == 0" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_001375f3(param_1);\n  }" ({ "{") (expression_statement "FUN_001375f3(param_1);" (call_expression "FUN_001375f3(param_1)" (identifier "FUN_001375f3") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_e4 != 0) {\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" (if "if") (parenthesized_expression "(local_e4 != 0)" (( "(") (binary_expression "local_e4 != 0" (identifier "local_e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001207c0(lVar12,0x50,local_e4,1);\n    FUN_0011f43e(lVar12,1);\n    FUN_00125119(lVar12,0,0,"rows deleted",0);\n  }" ({ "{") (expression_statement "FUN_001207c0(lVar12,0x50,local_e4,1);" (call_expression "FUN_001207c0(lVar12,0x50,local_e4,1)" (identifier "FUN_001207c0") (argument_list "(lVar12,0x50,local_e4,1)" (( "(") (identifier "lVar12") (, ",") (number_literal "0x50") (, ",") (identifier "local_e4") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0011f43e(lVar12,1);" (call_expression "FUN_0011f43e(lVar12,1)" (identifier "FUN_0011f43e") (argument_list "(lVar12,1)" (( "(") (identifier "lVar12") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00125119(lVar12,0,0,"rows deleted",0);" (call_expression "FUN_00125119(lVar12,0,0,"rows deleted",0)" (identifier "FUN_00125119") (argument_list "(lVar12,0,0,"rows deleted",0)" (( "(") (identifier "lVar12") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (string_literal ""rows deleted"" (" """) (string_content "rows deleted") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00175a84:\n  if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" (statement_identifier "LAB_00175a84") (: ":") (if_statement "if (local_80 != (long *)0x0) {\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" (if "if") (parenthesized_expression "(local_80 != (long *)0x0)" (( "(") (binary_expression "local_80 != (long *)0x0" (identifier "local_80") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_80[0x2c] = local_88;\n    local_80 = (long *)0x0;\n  }" ({ "{") (expression_statement "local_80[0x2c] = local_88;" (assignment_expression "local_80[0x2c] = local_88" (subscript_expression "local_80[0x2c]" (identifier "local_80") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "local_80 = (long *)0x0;" (assignment_expression "local_80 = (long *)0x0" (identifier "local_80") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "FUN_0011c238(lVar2,param_2);" (call_expression "FUN_0011c238(lVar2,param_2)" (identifier "FUN_0011c238") (argument_list "(lVar2,param_2)" (( "(") (identifier "lVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_0011c4af(lVar2,param_3);" (call_expression "FUN_0011c4af(lVar2,param_3)" (identifier "FUN_0011c4af") (argument_list "(lVar2,param_3)" (( "(") (identifier "lVar2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_00119825(lVar2,__s);" (call_expression "FUN_00119825(lVar2,__s)" (identifier "FUN_00119825") (argument_list "(lVar2,__s)" (( "(") (identifier "lVar2") (, ",") (identifier "__s") () ")"))) (; ";")) (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pParse,type_2 *pTabList,type_3 *var_24,type_4 *pOrderBy,type_3 *pLimit)

{
  type_5 eMode;
  int var_13;
  long var_70;
  type_6 *db;
  type_7 *var_16;
  long var_56;
  type_8 var_33;
  int var_7;
  int var_12;
  int var_22;
  type_9 var_35;
  type_10 *var_3;
  type_11 *var_5;
  type_12 *var_14;
  type_13 *var_18;
  type_14 *var_34;
  char *zP4;
  type_15 *var_54;
  long var_48;
  long var_1;
  int var_47;
  type_16 *local_118;
  type_9 var_25;
  type_9 var_15;
  type_17 local_e8;
  int var_27;
  type_12 *var_37;
  int var_30;
  int local_c4;
  int var_57;
  int var_59;
  int iIdxCur;
  type_18 sContext;
  type_19 sNC;
  
  var_70 = *(long *)(var_1 + 0x28);
  var_59 = 0;
  iIdxCur = 0;
  sContext.zAuthContext = (char *)0x0;
  sContext.pParse = (type_1 *)0x0;
  db = pParse->db;
  var_54 = (type_15 *)0x0;
  if (((pParse->nErr != 0) || (db->mallocFailed != '\0')) ||
     (var_3 = var_2(pParse,pTabList), var_3 == (type_10 *)0x0)) goto LAB_00175a84;
  var_5 = var_4(pParse,var_3,0x7e,(type_4 *)0x0,(int *)0x0);
  var_16 = var_3->pSelect;
  var_25 = 1;
  if (var_5 == (type_11 *)0x0) {
    var_7 = var_6(pParse,var_3,(int *)0x0,0);
    var_25 = (type_9)(var_7 != 0);
  }
  var_7 = var_8(pParse,var_3);
  var_54 = (type_15 *)0x0;
  if ((var_7 != 0) ||
     (var_7 = var_9(pParse,var_3,(type_9)(var_5 != (type_11 *)0x0)), var_7 != 0))
  goto LAB_00175a84;
  var_7 = var_10(db,var_3->pSchema);
  var_12 = var_11(pParse,9,var_3->zName,(char *)0x0,db->aDb[var_7].zDbSName);
  if (var_12 == 1) goto LAB_00175a84;
  var_13 = pParse->nTab;
  pParse->nTab = var_13 + 1;
  pTabList->a[0].iCursor = var_13;
  var_14 = var_3->pIndex;
  var_15 = 0;
  if (var_14 != (type_12 *)0x0) {
    var_15 = 0;
    do {
      pParse->nTab = pParse->nTab + 1;
      var_14 = var_14->pNext;
      var_15 = var_15 + 1;
    } while (var_14 != (type_12 *)0x0);
  }
  if (var_16 != (type_7 *)0x0) {
    sContext.zAuthContext = pParse->zAuthContext;
    pParse->zAuthContext = var_3->zName;
    sContext.pParse = pParse;
  }
  var_18 = var_17(pParse);
  var_54 = (type_15 *)0x0;
  if (var_18 == (type_13 *)0x0) goto LAB_00175a84;
  if (pParse->nested == '\0') {
    var_18->field_0xc6 = var_18->field_0xc6 | 0x10;
  }
  var_19(pParse,var_25,var_7);
  if (var_16 != (type_7 *)0x0) {
    var_20(pParse,var_3,var_24,pOrderBy,pLimit,var_13);
    var_59 = var_13;
    iIdxCur = var_13;
  }
  sNC.uNC.pEList = (type_4 *)0x0;
  sNC.pNext = (type_19 *)0x0;
  sNC.nRef = 0;
  sNC.nErr = 0;
  sNC.ncFlags = 0;
  sNC._44_4_ = 0;
  sNC.pWinSelect = (type_7 *)0x0;
  sNC.pParse = pParse;
  sNC.pSrcList = pTabList;
  var_22 = var_21(&sNC,var_24);
  var_54 = (type_15 *)0x0;
  if (var_22 != 0) goto LAB_00175a84;
  var_27 = 0;
  if ((((db->flags & 0x100000000) != 0) && (pParse->nested == '\0')) &&
     (pParse->pTriggerTab == (type_10 *)0x0)) {
    var_27 = pParse->nMem + 1;
    pParse->nMem = var_27;
    var_23(var_18,0x45,0,var_27);
  }
  if (((var_24 == (type_3 *)0x0 && var_25 == 0) && (var_12 == 0)) && (var_3->nModuleArg == 0)) {
    var_26(pParse,var_7,var_3->tnum,'\x01',var_3->zName);
    if ((var_3->tabFlags & 0x80) == 0) {
      var_12 = -1;
      if (var_27 != 0) {
        var_12 = var_27;
      }
      var_28(var_18,0x89,var_3->tnum,var_7,var_12,var_3->zName,-1);
    }
    var_14 = var_3->pIndex;
    if (var_14 == (type_12 *)0x0) {
      var_54 = (type_15 *)0x0;
    }
    else {
      do {
        var_23(var_18,0x89,var_14->tnum,var_7);
        var_14 = var_14->pNext;
      } while (var_14 != (type_12 *)0x0);
      var_54 = (type_15 *)0x0;
    }
  }
  else {
    var_33 = sNC._40_8_ & 0x40;
    if ((var_3->tabFlags & 0x80) == 0) {
      local_c4 = pParse->nMem + 1;
      pParse->nMem = local_c4;
      var_23(var_18,0x48,0,local_c4);
      local_e8 = 1;
      var_37 = (type_12 *)0x0;
      var_30 = 0;
      var_57 = 0;
      var_47 = 0;
    }
    else {
      var_37 = var_29(var_3);
      local_e8 = var_37->nKeyCol;
      var_47 = pParse->nMem + 1;
      pParse->nMem = pParse->nMem + (int)(short)local_e8;
      var_30 = pParse->nTab;
      pParse->nTab = var_30 + 1;
      var_57 = var_23(var_18,100,var_30,(int)(short)local_e8);
      var_31(pParse,var_37);
      local_c4 = 0;
    }
    var_34 = var_32(pParse,pTabList,var_24,(type_4 *)0x0,(type_4 *)0x0,
                               (ushort)(var_33 == 0 && var_25 == 0) << 3 | 0x414,var_13 + 1);
    var_54 = (type_15 *)0x0;
    if (var_34 == (type_14 *)0x0) goto LAB_00175a84;
    var_56 = *(long *)var_34->aiCurOnePass;
    eMode = var_34->eOnePass;
    var_35 = (type_9)eMode;
    if (var_35 != 1) {
      var_36(pParse);
    }
    if (var_27 != 0) {
      var_23(var_18,0x52,var_27,1);
    }
    var_7 = (int)((type_8)var_56 >> 0x20);
    if (var_37 == (type_12 *)0x0) {
      var_47 = pParse->nMem + 1;
      pParse->nMem = var_47;
      var_38(var_18,var_3,var_13,-1,var_47);
      if (var_35 != 0) goto LAB_0017622b;
      var_23(var_18,0x93,local_c4,var_47);
      var_39(var_34);
      if (var_16 == (type_7 *)0x0) {
        local_e8 = 1;
        var_54 = (type_15 *)0x0;
        var_15 = var_35;
LAB_001761b5:
        var_40(pParse,var_3,0x61,'\b',var_13,var_54,&var_59,&iIdxCur);
      }
      else {
        local_e8 = 1;
        var_54 = (type_15 *)0x0;
        var_15 = var_35;
      }
      if (var_35 != 0) goto LAB_001762b7;
      if (var_37 == (type_12 *)0x0) {
        var_12 = var_41(var_18,0x2a,local_c4,0,var_47);
      }
      else {
LAB_00175f34:
        var_12 = var_42(var_18,0x25,var_30);
        if (var_3->nModuleArg == 0) {
          var_23(var_18,0x7e,var_30,var_47);
        }
        else {
          var_41(var_18,0x59,var_30,0,var_47);
        }
      }
      if (var_3->nModuleArg == 0) goto LAB_00175f7d;
      local_118 = var_43(db,var_3);
      var_44(pParse,var_3);
      var_45(pParse);
LAB_001764bf:
      var_28(var_18,10,0,1,var_47,(char *)local_118,-0xc);
      var_46(var_18,2);
    }
    else {
      var_12 = (int)(short)local_e8;
      if (0 < (short)local_e8) {
        var_48 = 0;
        do {
          var_38
                    (var_18,var_3,var_13,(int)var_37->aiColumn[var_48],var_47 + (int)var_48);
          var_48 = var_48 + 1;
        } while ((type_8)(var_12 - 1) + 1 != var_48);
      }
      if (var_35 == 0) {
        var_22 = pParse->nMem + 1;
        pParse->nMem = var_22;
        zP4 = var_49(pParse->db,var_37);
        var_28(var_18,0x5b,var_47,var_12,var_22,zP4,var_12);
        var_50(var_18,0x82,var_30,var_22,var_47,var_12);
        var_39(var_34);
        var_47 = var_22;
        if (var_16 != (type_7 *)0x0) {
          local_e8 = 0;
          var_54 = (type_15 *)0x0;
          var_15 = var_35;
          goto LAB_00175f34;
        }
        local_e8 = 0;
        var_54 = (type_15 *)0x0;
        var_15 = var_35;
LAB_00176334:
        if (var_35 != 2) goto LAB_001761b5;
        var_12 = var_51(var_18,0x11);
        var_40(pParse,var_3,0x61,'\b',var_13,var_54,&var_59,&iIdxCur);
        var_52(var_18,var_12);
      }
      else {
LAB_0017622b:
        var_54 = (type_15 *)var_53(db,(long)(int)(var_15 + 2));
        if (var_54 == (type_15 *)0x0) {
          var_39(var_34);
          goto LAB_00175a84;
        }
        var_55(var_54,1,(long)(int)(var_15 + 1));
        var_54[(long)(int)var_15 + 1] = '\0';
        if (-1 < (int)var_56) {
          var_54[(int)var_56 - var_13] = '\0';
        }
        if (-1 < var_56) {
          var_54[var_7 - var_13] = '\0';
        }
        if (var_57 != 0) {
          var_58(var_18,var_57);
        }
        var_15 = pParse->nLabel - 1;
        pParse->nLabel = var_15;
        if (var_16 == (type_7 *)0x0) goto LAB_00176334;
      }
LAB_001762b7:
      if (var_3->nModuleArg != 0) {
LAB_001763f0:
        local_118 = var_43(db,var_3);
        var_44(pParse,var_3);
        var_45(pParse);
        var_12 = 0;
        if ((var_35 == 1) && (var_42(var_18,0x74,var_13), pParse->pToplevel == (type_1 *)0x0)) {
          pParse->isMultiWrite = '\0';
        }
        goto LAB_001764bf;
      }
      if (var_54[var_59 - var_13] == '\0') {
        var_12 = 0;
      }
      else {
        var_50(var_18,0x1d,var_59,var_15,var_47,(int)(short)local_e8);
        if (var_3->nModuleArg != 0) goto LAB_001763f0;
        var_12 = 0;
      }
LAB_00175f7d:
      var_60
                (pParse,var_3,var_5,var_59,iIdxCur,var_47,local_e8,pParse->nested == '\0',
                 '\v',eMode,var_7);
    }
    if (var_35 == 0) {
      if (var_37 == (type_12 *)0x0) {
        var_61(var_18,var_12);
        var_62(var_18,var_12);
      }
      else {
        var_23(var_18,5,var_30,var_12 + 1);
        var_62(var_18,var_12);
      }
    }
    else {
      var_63(var_18,var_15);
      var_39(var_34);
    }
  }
  if ((pParse->nested == '\0') && (pParse->pTriggerTab == (type_10 *)0x0)) {
    var_64(pParse);
  }
  if (var_27 != 0) {
    var_23(var_18,0x50,var_27,1);
    var_65(var_18,1);
    var_66(var_18,0,0,"rows deleted",(type_20 *)0x0);
  }
LAB_00175a84:
  if (sContext.pParse != (type_1 *)0x0) {
    (sContext.pParse)->zAuthContext = sContext.zAuthContext;
    sContext.pParse = (type_1 *)0x0;
  }
  var_67(db,pTabList);
  var_68(db,var_24);
  var_69(db,var_54);
  if (var_70 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_71();
  }
  return;
}


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

void MASKED(long *param_1,long param_2,long param_3,undefined8 param_4,undefined8 param_5)

{
  int iVar1;
  long lVar2;
  long lVar3;
  ulong uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  long *plVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  undefined8 uVar14;
  void *__s;
  long lVar15;
  long lVar16;
  long in_FS_OFFSET;
  bool bVar17;
  undefined8 local_118;
  uint local_f0;
  short local_e8;
  int local_e4;
  long local_d8;
  int local_c8;
  int local_c4;
  int local_c0;
  int local_90;
  int local_8c;
  long local_88;
  long *local_80;
  long *local_78;
  long local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  ulong local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_90 = 0;
  local_8c = 0;
  local_88 = 0;
  local_80 = (long *)0x0;
  lVar2 = *param_1;
  __s = (void *)0x0;
  if ((((int)param_1[6] != 0) || (*(char *)(lVar2 + 0x61) != '\0')) ||
     (plVar10 = (long *)FUN_00174d5c(), plVar10 == (long *)0x0)) goto LAB_00175a84;
  lVar11 = FUN_00111fa0(param_1,plVar10,0x7e,0,0);
  lVar16 = plVar10[3];
  bVar17 = true;
  if (lVar11 == 0) {
    iVar5 = FUN_001116f3(param_1,plVar10,0,0);
    bVar17 = iVar5 != 0;
  }
  iVar5 = FUN_001684fe(param_1,plVar10);
  __s = (void *)0x0;
  if ((iVar5 != 0) || (iVar5 = FUN_0012e937(param_1,plVar10,lVar11 != 0), iVar5 != 0))
  goto LAB_00175a84;
  iVar5 = FUN_00111b49(lVar2,plVar10[0xe]);
  iVar6 = FUN_0012ca50(param_1,9,*plVar10,0,
                       *(undefined8 *)((long)iVar5 * 0x20 + *(long *)(lVar2 + 0x20)));
  if (iVar6 == 1) goto LAB_00175a84;
  iVar1 = *(int *)((long)param_1 + 0x34);
  *(int *)((long)param_1 + 0x34) = iVar1 + 1;
  *(int *)(param_2 + 0x48) = iVar1;
  lVar12 = plVar10[2];
  local_f0 = 0;
  if (lVar12 != 0) {
    local_f0 = 0;
    do {
      *(int *)((long)param_1 + 0x34) = *(int *)((long)param_1 + 0x34) + 1;
      lVar12 = *(long *)(lVar12 + 0x28);
      local_f0 = local_f0 + 1;
    } while (lVar12 != 0);
  }
  if (lVar16 != 0) {
    local_88 = param_1[0x2c];
    param_1[0x2c] = *plVar10;
    local_80 = param_1;
  }
  lVar12 = FUN_00121a1e(param_1);
  __s = (void *)0x0;
  if (lVar12 == 0) goto LAB_00175a84;
  if (*(char *)((long)param_1 + 0x1e) == '\0') {
    *(byte *)(lVar12 + 0xc6) = *(byte *)(lVar12 + 0xc6) | 0x10;
  }
  FUN_00152f68(param_1,bVar17,iVar5);
  if (lVar16 != 0) {
    FUN_00168048(param_1,plVar10,param_3,param_4,param_5,iVar1);
    local_90 = iVar1;
    local_8c = iVar1;
  }
  local_68 = 0;
  local_60 = 0;
  local_58 = 0;
  local_50 = 0;
  local_48 = 0;
  local_78 = param_1;
  local_70 = param_2;
  iVar7 = FUN_0012ce42(&local_78,param_3);
  __s = (void *)0x0;
  if (iVar7 != 0) goto LAB_00175a84;
  local_e4 = 0;
  if ((((*(byte *)(lVar2 + 0x34) & 1) != 0) && (*(char *)((long)param_1 + 0x1e) == '\0')) &&
     (param_1[0x15] == 0)) {
    local_e4 = (int)param_1[7] + 1;
    *(int *)(param_1 + 7) = local_e4;
    FUN_001207c0(lVar12,0x45,0,local_e4);
  }
  if (((param_3 == 0 && bVar17 == false) && (iVar6 == 0)) && (*(int *)((long)plVar10 + 0x54) == 0))
  {
    FUN_0012046c(param_1,iVar5,(int)plVar10[7],1,*plVar10);
    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {
      iVar6 = -1;
      if (local_e4 != 0) {
        iVar6 = local_e4;
      }
      FUN_00121136(lVar12,0x89,(int)plVar10[7],iVar5,iVar6,*plVar10,0xffffffffffffffff);
    }
    lVar16 = plVar10[2];
    if (lVar16 == 0) {
      __s = (void *)0x0;
    }
    else {
      do {
        FUN_001207c0(lVar12,0x89,*(undefined4 *)(lVar16 + 0x58),iVar5);
        lVar16 = *(long *)(lVar16 + 0x28);
      } while (lVar16 != 0);
      __s = (void *)0x0;
    }
  }
  else {
    uVar4 = local_50 & 0x40;
    if ((*(byte *)(plVar10 + 8) & 0x80) == 0) {
      local_c4 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = local_c4;
      FUN_001207c0(lVar12,0x48,0,local_c4);
      local_e8 = 1;
      local_d8 = 0;
      local_c8 = 0;
      local_c0 = 0;
      iVar5 = 0;
    }
    else {
      local_d8 = FUN_00111247(plVar10);
      local_e8 = *(short *)(local_d8 + 0x5e);
      iVar5 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = (int)param_1[7] + (int)local_e8;
      local_c8 = *(int *)((long)param_1 + 0x34);
      *(int *)((long)param_1 + 0x34) = local_c8 + 1;
      local_c0 = FUN_001207c0(lVar12,100);
      FUN_0013744b(param_1,local_d8);
      local_c4 = 0;
    }
    lVar13 = FUN_001620c2(param_1,param_2,param_3,0,0,
                          (ushort)(uVar4 == 0 && bVar17 == false) << 3 | 0x414,iVar1 + 1);
    __s = (void *)0x0;
    if (lVar13 == 0) goto LAB_00175a84;
    lVar3 = *(long *)(lVar13 + 0x28);
    uVar8 = (uint)*(byte *)(lVar13 + 0x42);
    if (uVar8 != 1) {
      FUN_0011158f(param_1);
    }
    if (local_e4 != 0) {
      FUN_001207c0(lVar12,0x52,local_e4,1);
    }
    if (local_d8 == 0) {
      iVar5 = (int)param_1[7] + 1;
      *(int *)(param_1 + 7) = iVar5;
      FUN_0015bb5b(lVar12,plVar10,iVar1,0xffffffff,iVar5);
      if (uVar8 != 0) goto LAB_0017622b;
      FUN_001207c0(lVar12,0x93,local_c4,iVar5);
      FUN_00120a54(lVar13);
      if (lVar16 == 0) {
        local_e8 = 1;
        __s = (void *)0x0;
        local_f0 = uVar8;
LAB_001761b5:
        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);
      }
      else {
        local_e8 = 1;
        __s = (void *)0x0;
        local_f0 = uVar8;
      }
      if (uVar8 != 0) goto LAB_001762b7;
      if (local_d8 == 0) {
        iVar6 = FUN_00120767(lVar12,0x2a,local_c4,0,iVar5);
      }
      else {
LAB_00175f34:
        iVar6 = FUN_00120894(lVar12,0x25,local_c8);
        if (*(int *)((long)plVar10 + 0x54) == 0) {
          FUN_001207c0(lVar12,0x7e,local_c8,iVar5);
        }
        else {
          FUN_00120767(lVar12,0x59,local_c8,0,iVar5);
        }
      }
      if (*(int *)((long)plVar10 + 0x54) == 0) goto LAB_00175f7d;
      local_118 = FUN_0011203f(lVar2,plVar10);
      FUN_0011dfb5(param_1,plVar10);
      FUN_001115a2(param_1);
LAB_001764bf:
      FUN_00121136(lVar12,10,0,1,iVar5,local_118,0xfffffffffffffff4);
      FUN_0010f49a(lVar12,2);
    }
    else {
      iVar6 = (int)local_e8;
      if (0 < local_e8) {
        lVar15 = 0;
        do {
          FUN_0015bb5b(lVar12,plVar10,iVar1,(int)*(short *)(*(long *)(local_d8 + 8) + lVar15 * 2),
                       iVar5 + (int)lVar15);
          lVar15 = lVar15 + 1;
        } while ((ulong)(iVar6 - 1) + 1 != lVar15);
      }
      if (uVar8 == 0) {
        iVar7 = (int)param_1[7] + 1;
        *(int *)(param_1 + 7) = iVar7;
        uVar14 = FUN_001349e4(*param_1,local_d8);
        FUN_00121136(lVar12,0x5b,iVar5,iVar6,iVar7,uVar14,iVar6);
        FUN_0012085a(lVar12,0x82,local_c8,iVar7,iVar5,iVar6);
        FUN_00120a54(lVar13);
        iVar5 = iVar7;
        if (lVar16 != 0) {
          local_e8 = 0;
          __s = (void *)0x0;
          local_f0 = uVar8;
          goto LAB_00175f34;
        }
        local_e8 = 0;
        __s = (void *)0x0;
        local_f0 = uVar8;
LAB_00176334:
        if (uVar8 != 2) goto LAB_001761b5;
        uVar9 = FUN_0012083c(lVar12,0x11);
        FUN_0013760c(param_1,plVar10,0x61,8,iVar1,__s,&local_90,&local_8c);
        FUN_0010f508(lVar12,uVar9);
      }
      else {
LAB_0017622b:
        __s = (void *)FUN_0011efd7(lVar2,(long)(int)(local_f0 + 2));
        if (__s == (void *)0x0) {
          FUN_00120a54(lVar13);
          goto LAB_00175a84;
        }
        memset(__s,1,(long)(int)(local_f0 + 1));
        *(undefined1 *)((long)__s + (long)(int)local_f0 + 1) = 0;
        if (-1 < (int)lVar3) {
          *(undefined1 *)((long)__s + (long)((int)lVar3 - iVar1)) = 0;
        }
        if (-1 < lVar3) {
          *(undefined1 *)((long)__s + (long)((int)((ulong)lVar3 >> 0x20) - iVar1)) = 0;
        }
        if (local_c0 != 0) {
          FUN_0011aaa4(lVar12,local_c0);
        }
        local_f0 = *(int *)((long)param_1 + 0x44) - 1;
        *(uint *)((long)param_1 + 0x44) = local_f0;
        if (lVar16 == 0) goto LAB_00176334;
      }
LAB_001762b7:
      if (*(int *)((long)plVar10 + 0x54) != 0) {
LAB_001763f0:
        local_118 = FUN_0011203f(lVar2,plVar10);
        FUN_0011dfb5(param_1,plVar10);
        FUN_001115a2(param_1);
        iVar6 = 0;
        if ((uVar8 == 1) && (FUN_00120894(lVar12,0x74,iVar1), param_1[0x14] == 0)) {
          *(undefined1 *)(param_1 + 4) = 0;
        }
        goto LAB_001764bf;
      }
      if (*(char *)((long)__s + (long)(local_90 - iVar1)) == '\0') {
        iVar6 = 0;
      }
      else {
        FUN_0012085a(lVar12,0x1d,local_90,local_f0,iVar5,(int)local_e8);
        if (*(int *)((long)plVar10 + 0x54) != 0) goto LAB_001763f0;
        iVar6 = 0;
      }
LAB_00175f7d:
      FUN_00175683(param_1,plVar10,lVar11,local_90,local_8c,iVar5,(int)local_e8,
                   *(char *)((long)param_1 + 0x1e) == '\0',0xb,uVar8,lVar3 >> 0x20);
    }
    if (uVar8 == 0) {
      if (local_d8 == 0) {
        FUN_00120941(lVar12,iVar6);
        FUN_0010f4fb(lVar12,iVar6);
      }
      else {
        FUN_001207c0(lVar12,5,local_c8,iVar6 + 1);
        FUN_0010f4fb(lVar12,iVar6);
      }
    }
    else {
      FUN_00120437(lVar12,local_f0);
      FUN_00120a54(lVar13);
    }
  }
  if ((*(char *)((long)param_1 + 0x1e) == '\0') && (param_1[0x15] == 0)) {
    FUN_001375f3(param_1);
  }
  if (local_e4 != 0) {
    FUN_001207c0(lVar12,0x50,local_e4,1);
    FUN_0011f43e(lVar12,1);
    FUN_00125119(lVar12,0,0,"rows deleted",0);
  }
LAB_00175a84:
  if (local_80 != (long *)0x0) {
    local_80[0x2c] = local_88;
    local_80 = (long *)0x0;
  }
  FUN_0011c238(lVar2,param_2);
  FUN_0011c4af(lVar2,param_3);
  FUN_00119825(lVar2,__s);
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return;
}

